Model¶
Reads and draws a variety of 3D model formats such as OBJ and Collada (see complete list under notes)
Only tesselated polygons are drawn and surfaces that are not tesselated are converted before drawing
the model node is primarily used for drawing models, while its sister-node Canvas should be used for virtual projections.

Model vs Canvas
SPARCK provides two nodes for displaying 3D geometry:
| Model | Canvas |
|---|---|
| Full-featured with materials, lighting, shadows | Optimized for projection mapping |
| Use for scene decoration & visualization | Use for projection surfaces |
| Works with Material & Light nodes | Works with SpatialShadery & TextureProjectory |
| Shadow casting & receiving | No lighting/shadow support |
| No texture baking | Built-in texture baking |
Rule of thumb: Use Model for objects that need realistic rendering (room models, props, calibration references), Use Canvas for models that represent surfaces you project onto.
Reference¶
The following properties can be configured for this node:
| Property | Type | Description |
|---|---|---|
file |
drag n' drop | select the model file to draw. the file needs to be located inside the ~/_assets/_model folder. you can also drag'n drop file, which will be copied into the _model folder and autmatically selected. |
parent |
- | parent transformation node |
RenderGroup |
- | set the render group. Capture/Beamer/3DViewer have an equivalent in which you can choose which group to render. |
position |
(local transformation) | position x y z |
rotation |
(local transformation) | rotation x y z |
scale |
(local transformation) | scale x y z |
normalize |
- | normalizes the model |
shader |
- | link to Shader Node |
material |
- | link to Material Node |
defaut texture |
- | default texture |
texture map |
- | generates texture map |
materialmode |
- | choose material mode |
autmaterial |
- | can improove rendering result |
color |
- | object color |
diffuse |
- | diffuse color |
specular |
- | specular color |
ambient |
- | ambient color |
emission |
- | emission color |
lighting |
- | lets the model react to light sources |
shadowcaster |
- | lets the model cast shadows |
depth |
- | depth buffering |
layer |
- | depth layer (works best with depth-buffering off) |
smooth |
- | smooth rendering |
angle |
- | edge angle for smooth rendering |
blend |
- | enables blendmode |
blendmode |
- | choose blendmode: |
displaylist |
- | enables displaylist - can speed up drawing |
cachemode |
- | choose cachemode: |
cullface |
- | choose cullface: |
drawgroup |
- | if the model has drawgroups, choose. |
polymode |
draw.. | |
antialias |
- | use antialias |
axes |
- | show axes of the models origin |
nodeaxes |
- | if modesl has nodes, show axes of the nodes |
matrixouput |
- | ouputs the faces as a jitter matrix on the dumpout outlet |
fileWatch |
- | watches the model file. when it changes, it will be autmatically reloaded |
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 |
| Outlet | Type | Description |
|---|---|---|
Common Use Cases¶
Room Visualization
A common use for the Model node is displaying a simplified 3D model of your physical space in the 3DViewer:
- Create an accurate 3D model of your room/venue in external software
- Export as OBJ (preferred) and place in
~/_assets/_model/ - Set
RenderGroupto show only in 3DViewer (not in Beamer outputs) - This helps visualize projector positions, floor planes, and tracked objects in context
Keep polygon count reasonable for good performance — the model is for reference, not projection.
Lighting and Shadows¶
Realistic Rendering Setup
To enable realistic lighting on your Model:
- Enable
lightingon the Model node - Add one or more Light nodes to your scene
- Connect a Material node for advanced surface properties
For shadows:
- Enable
shadowcasteron the Model node - Enable
shadowson the Light node - Configure shadow quality on the Light (lo/med/hi)
- Set appropriate
shadowrangefor your scene scale
Performance Considerations
The actual appearance of 3D objects is a combination of the material properties and the light colors in the scene. Multiple lights can be added up to a graphics card-specific maximum.
For complex scenes, consider:
- Using
displaylistorvertexbuffercachemode for faster rendering - Reducing polygon count in source models
- Limiting shadow-casting lights
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
File Locations
-
Quick Start
Get started with Model in minutes
-
Complementing Model
-
Tutorials
-
Community
Need help or want to suggest improvements?
Last updated: 2025-12-01 | Edit this page on GitHub