FormA Geometry & scenes
FormA stores compact geometry and complete scene resources. Geometry is kept separate from scene attributes, so vertices and triangle indices are not duplicated.
A little technical detail
Coordinates are signed Int32 values in millimetres. Vertex and index streams choose the smallest delta-varint or delta-byteplane representation, optionally using PackBits. Scenes can carry cameras, materials, lights, normals, UVs and spatial regions; textures reuse RFXL. Encoding is lossless relative to the supplied integer geometry.
Format definitionHistoryPureBasic modulePureBasic source bundleC sourceC headerJavaScript sourceC / JavaScript bundlePort contracts
Comparison & examples
A synthetic mesh with 257 vertices and 255 triangles. The source coordinate and index buffers total 6,144 bytes. The FormA download contains the corresponding geometry. Size savings refer to these integer buffers, not to an OBJ or rendered image.
| Representation | Download / size | Decoded preview |
|---|---|---|
| Encoded geometry | 1,947 bytes | |
| Original Int32 XYZ | 3,084 bytes | |
| Original U32 triangles | 3,060 bytes |
Encode & decode
OBJ positions use metres and are rounded to signed Int32 millimetres. OBJ exports preserve geometry, normals and UVs, but not the complete scene contract. Scene JSON retains the FormA attributes and embedded texture pixels; external OBJ material files are not loaded. Processing stays in your browser. Input limit: 64 MiB.
No file loaded.