Open Brush File Format
The .tilt file format can also be parsed by the Open Brush Toolkit.
A .tilt is a zip-format file with a prepended header:
1
uint32 sentinel ('tilT')
2
uint16 header_size (currently 16)
3
uint16 header_version (currently 1)
4
uint32 reserved
5
uint32 reserved
Copied!
Inside the zip, the strokes are stored in a custom binary format in a file, "data.sketch":
1
uint32 sentinel
2
uint32 version
3
uint32 reserved (must be 0)
4
[ uint32 size + <size> bytes of additional header data ]
5
int32 num_strokes
6
num_strokes * {
7
int32 brush_index
8
float32x4 brush_color
9
float32 brush_size
10
uint32 stroke_extension_mask
11
uint32 controlpoint_extension_mask
12
[ int32/float32 for each set bit in stroke_extension_mask & ffff ]
13
[ uint32 size + <size> bytes for each set bit in stroke_extension_mask & ~ffff ]
14
int32 num_control_points
15
num_control_points * {
16
float32x3 position
17
float32x4 orientation (quat)
18
[ int32/float32 for each set bit in controlpoint_extension_mask ]
19
}
20
}
Copied!
The orientation is that of the controller. Curve and surface frames must be reconstructed.
Stroke extensions:
0
uint32 bitfield. Bit 0: IsGroupContinue
Control point extensions:
0
float pressure, in [0,1]
1
uint32 timestamp, in milliseconds

Also inside the zip is "metadata.json", the metadata for the sketch in json format. Here are some of the fields that can be found there:
  • "Authors": an array of author names.
  • "SceneTransformInRoomSpace": the transform of the scene relative to the room.
  • "ThumbnailCameraTransformInRoomSpace": the transform used to generate the sketch as an array of:
    • translation (array of 3 floats)
    • rotation quaternion (array of 4 floats)
    • scale (single float)
  • "ModelIndex": an array of models imported into the sketch. Each model can have the following:
    • "FilePath": location of the model
    • "PinStates": an array to indicate whether each instance of the model should initially be pinned.
    • "RawTransforms": an array of transforms for each instance of the model.
Export as PDF
Copy link
Edit on GitHub
Contents