Canvas¶
Reads and draws a variety of 3D model formats such as OBJ and Collada (see complete list under notes)
When providing a custom model file, ensure it has a proper UV mapping for texture projection (dense uv island packing and no overlapping).
Only tesselated polygons are drawn and surfaces that are not tesselated are converted before drawing
This node should be prefered for virtual projections over its sister node Model.

Canvas vs Model
SPARCK provides two nodes for displaying 3D geometry:
| Canvas | Model |
|---|---|
| Optimized for projection mapping | Full-featured with materials, lighting, shadows |
| Use for projection surfaces | Use for scene decoration |
| Works with SpatialShadery & TextureProjectory | Works with Material & Light nodes |
| Built-in texture baking | No baking support |
| No lighting/shadow support | Full lighting & shadow casting |
Rule of thumb: Use Canvas for models that represent surfaces you project onto, use Model for objects that need realistic rendering.
Reference¶
The following properties can be configured for this node:
| Property | Type | Description |
|---|---|---|
drawto |
- | set the render group. Capture/Beamer/3DViewer have an equivalent in which you can choose which group to render. |
shape |
- | select the shape or model file to draw. If a file, it needs to be located inside the ~/_assets/_model folder. you can also drag'n drop files, which will be copied into the _model folder and autmatically selected. |
meshfile |
drag n' drop | If the shape is a file, it needs to be located inside the ~/_assets/_model folder. you can also drag'n drop files, which will be copied into the _model folder and autmatically selected. |
fileWatch |
- | watches the model file. when it changes, it will be autmatically reloaded |
shader |
- | the shader applied to the canvas. If it is a SpatialShadery or TextureProjectory shader, additional paramaters allow |
bake dim |
[px] | the baked texure dimension |
bake unique |
- | attempts to execute the baking render pass for each individual canvas in another subsequent frame |
border width |
[px] | bleeds the baking results over its borders. Can fix some artifacts |
parent |
- | parent transformation node |
position |
(local transformation) | position x y z |
rotation |
(local transformation) | rotation x y z |
scale |
(local transformation) | scale x y z |
color |
- | object color |
frontface |
draw.. | |
backface |
draw.. | |
cullface |
- | choose cullface: |
blend |
- | enables blendmode |
blendmode |
- | choose blendmode: |
depth |
- | depth buffering |
showaxes |
- | show axes of the models origin |
publish transformation |
- | publishes this mode transformation as a transformation node |
| Inlet | Type | Description |
|---|---|---|
| properties | properties | properties | use message [set <propertyPath> <value(s)>] (without node/<nodeName> at the beginning) to set internal properties |
| main | texture | main texture. press to reset to default |
| custom | matrix | custom jit.matrix |
| Outlet | Type | Description |
|---|---|---|
| baked | texture | baked texture(s) |
| baked | texture | baked texture used in current renderpass |
Built-in Shapes¶
Quick Shape Selection
Canvas provides several built-in shapes for common projection surfaces:
- plane: Flat surface — ideal for floors, walls, screens
- cube: Six-sided box
- sphere: Spherical surface — for dome projections
- cylinder: Cylindrical surface — for column projections
- custom file: Load any OBJ or supported 3D format
For complex or irregular surfaces (cars, heads, sculptures), load a custom mesh that matches your physical projection target.
Typical Workflows¶
Floor Projection Setup
For a typical floor projection with multiple projectors:
- Add a Canvas node and set
shapeto plane - Set
scaleto match your physical floor dimensions (1 unit = 1 meter) - Assign a SpatialShadery shader for multi-projector blending
- Set
drawtoto include both 3DViewer and your Beamer render groups - Connect content via texture inlet or SpoutReceiver/SyphonReceiver
Texture Baking Workflow
When using SpatialShadery or TextureProjectory with project to set to baked textures:
- The shader computes projector contributions onto the canvas
- Results are baked into textures (output via
bakedoutlets) - Set
bake dimto control baked texture resolution - Enable
bake uniqueif multiple canvases cause rendering conflicts - Adjust
border widthto fix edge artifacts from UV seams
Canvas Types for Different Projections¶
Unlimited Possibilities
Only your imagination (or the physics of 3D space) limits what SPARCK can project onto. Common canvas types include:
- Dome — planetarium-style 360° projections
- Cylinder — surround projection for columns or rooms
- Custom meshes — cars, sculptures, architectural elements, faces
Create custom meshes in 3D software (Blender, Cinema 4D, etc.) that match your physical projection targets. Export as OBJ for best compatibility.
Important Notes¶
Supported File Types
List of supported file types: - Wavefront Object Model File - .obj is the prefered file format. SPARCK likes it. - 3D GameStudio Model File - .mdl - 3ds Max 3DS Model File - .3ds - 3ds Max ASE Model File - .ase - 3D GameStudio Terrain File - .hmp - AC3D Model File - .ac - AutoCAD DXF Model File - .dxf - Biovision BVH Motion Capture File - .bvh - BlitzBasic 3D Model File - .b3d - CharacterStudio Motion Capture File - .csm - Collada Model File - .dae - Direct X Model File - .x - Doom 3 Model File - .md5 - Irrlicht Mesh File - .irrmesh - Irrlicht Scene File - .irr - Izware Nendo Model File - .ndo - LightWave Model File - .lwo - Milkshape 3D Model File - .ms3d - Modo Model File - .lxo - Neutral File Format File - .nff - Object File Format File - .off - Ogre3D XML Model File - .mesh.xml - PovRAY Raw Model File - .raw - Quake I Mesh File - .mdl - Quake II Mesh File - .md2 - Quake III Mesh File - .md3 - Quake III BSP File - .pk3 - Quick3D Q3D Model File - .q3d - Quick3D Q3S Model File - .q3s - Return to Castle Wolfenstein Model File - .mdc - Sense8 WorldToolKit File - .nff - Stanford Polygon Library Model File - .ply - Stereolithography Model File - .stl - Terragen Terrain File - .ter - TrueSpace COB Model File - .cob - TrueSpace SCB Model File - .scb - Valve SMD Model File - .smd - Valve VTA Model File - .vta
Scale Reference
In SPARCK, 1 unit = 1 meter. When setting up your Canvas scale to match a physical space:
- A 6m × 12m floor = scale
3 6 1 - A 3m diameter dome = scale
1.5 1.5 1.5
Correct scaling ensures alignment between virtual projection content and real-world visuals from external engines like Unreal or TouchDesigner.
-
Quick Start
Get started with Canvas in minutes
-
Complementing Canvas
-
Tutorials
-
Community
Need help or want to suggest improvements?
Last updated: 2025-12-01 | Edit this page on GitHub