ILDA Reference

ILDA File Format Specification

Technical specification for the ILDA binary file format — headers, format codes, coordinate system, and the status byte.

The ILDA file format is the industry standard for laser graphics. Understanding its structure helps you diagnose issues and work with files from any source.

File Structure Overview

An ILDA file consists of one or more sections, each beginning with a 32-byte header followed by its data records. The file ends with a special terminator header.

┌──────────────────────────────────────┐
│  Header 1 (32 bytes)                 │
├──────────────────────────────────────┤
│  Data Records 1 (N × record size)    │
├──────────────────────────────────────┤
│  Header 2 (32 bytes)                 │
├──────────────────────────────────────┤
│  Data Records 2 (M × record size)    │
├──────────────────────────────────────┤
│  ...                                 │
├──────────────────────────────────────┤
│  Terminator Header (records = 0)     │
└──────────────────────────────────────┘

Header Structure (32 bytes)

OffsetSizeFieldDescription
04Signature"ILDA" (ASCII)
43ReservedMust be 0x00
71Format Code0, 1, 2, 4, or 5
88Frame NameASCII, null-padded
168Company NameASCII, null-padded
242Number of RecordsBig-endian uint16
262Frame NumberCurrent frame index (0-based)
282Total FramesTotal frames in animation
301Scanner HeadFor multi-projector setups (usually 0)
311ReservedMust be 0x00

Format Codes

Format 0 — 3D Coordinates + Indexed Color

8 bytes per point: X (2), Y (2), Z (2), Status (1), Color Index (1)

Most compatible format. Works on SD card projectors.

Format 1 — 2D Coordinates + Indexed Color

6 bytes per point: X (2), Y (2), Status (1), Color Index (1)

Smaller files, no Z data. Good for 2D content.

Format 2 — Color Palette (Indexed)

3 bytes per entry: R (1), G (1), B (1)

Defines up to 256 colors. Must precede Format 0/1 frames.

Format 4 — 3D Coordinates + True Color

10 bytes per point: X (2), Y (2), Z (2), Status (1), B (1), G (1), R (1)

The 3D counterpart to Format 5 — full RGB per point plus a Z coordinate. Format 2 is the only palette format; Format 4 carries point data, not a palette.

Format 5 — 2D Coordinates + True Color (modern standard)

8 bytes per point: X (2), Y (2), Status (1), B (1), G (1), R (1)

Full RGB per point. Not universally supported on older hardware.

Coordinate System

ILDA uses signed 16-bit integers in a standard Cartesian layout — Y increases upward (the opposite of screen coordinates, where Y increases downward):

  • X: -32768 to +32767 (left to right)
  • Y: -32768 to +32767 (bottom to top — Y increases upward)
  • Z: -32768 to +32767 (into screen to out of screen)

The coordinate range maps to no fixed optical angle — the actual projection angle depends on your scanner hardware and setup. The 8 degrees you see in scanner specs (e.g. "30K pps at 8°") is the ILDA tuning-standard test condition for rating scanner speed, not a property of the coordinate system.

Status Byte

The status byte contains flags controlling laser output:

BitNameMeaning
6Blanking1 = laser off (blanked), 0 = laser on
7Last Point1 = last point in frame

Some software incorrectly sets the blanking bit (using 0 for off, 1 for on) or forgets to set the last-point flag. This can cause rendering issues on certain hardware. BeamTracer's Validation widget detects these errors.

EOF Marker

A properly formatted ILDA file ends with a header where Number of Records = 0. This tells players the file is complete. Missing EOF markers can cause:

  • Looping failures
  • Player crashes
  • Garbage data at end of playback

BeamTracer's Validation widget detects missing EOF markers and warns you.

Further Reading