Development¶
Tests¶
ctest --test-dir build --output-on-failure
Most tests need no GPU: graph model and validation, serialization, planning, tensor shapes, ONNX model info, image I/O, layout and introspection. The GPU tests run headlessly:
GraphIntrospection.builtGraphMatchesCompiledElementschecks that the introspected graph contains exactly the elements Klartraum compiled, for both splatting backends.GraphRunnerTestexecutes the example run graphs. The image autoencoder’s output has to resemble its input, and the offscreen splatting chain has to produce a non-black reconstruction.
Headless snapshots¶
klartraum_studio_snapshot renders the complete UI (scene, editors,
inspector) headlessly into a 512×384 BMP, with no display needed:
./build/klartraum_studio_snapshot --out authoring.bmp --select gaussian_splatting
./build/klartraum_studio_snapshot --out compiled.bmp --tab compiled --hide-buffers
./build/klartraum_studio_snapshot --out swap.bmp --then-backend compute # recompiles mid-run
./build/klartraum_studio_snapshot --out run.bmp --example autoencoder --run --select preview
With --run, the tool presses Run and fails if the run fails.
Recording the animation on the start page¶
tools/record_studio_animation.sh (macOS) opens
examples/lantern-turntable.ktgraph.json, in which a Time node turns the
lantern once every 3 seconds, and records the studio window with its title
bar. It then cuts exactly one turn into seamlessly looping animations: an
MP4 video with a poster image (used on klartraum.ai) and a GIF (used here).
tools/record_studio_animation.sh # writes docs/_static/studio.mp4, studio-poster.jpg, studio.gif
The terminal needs the Screen Recording permission. The window is placed with
klartraum_studio --window-position X Y so that it lies fully on the main
display, and it must stay uncovered for the few seconds of the recording.
Source layout¶
Path |
Contents |
|---|---|
|
authoring graph: node kinds, typed pins, links, validation |
|
JSON load and save |
|
authoring graph → live and run plans; the live Klartraum graph |
|
tensor shape propagation and checks |
|
reads ONNX model inputs, outputs and operators |
|
builds and executes the run part once, reads back the sinks |
|
image files (stb) and image ↔ tensor conversion |
Building the documentation¶
python3 -m venv docs/.venv
docs/.venv/bin/pip install -r docs/requirements.txt
docs/.venv/bin/sphinx-build -W --keep-going docs docs/_build/html
Links into the Klartraum Engine API reference come from the published engine
docs. To build against a local engine docs build instead, set
KLARTRAUM_INVENTORY=/path/to/klartraum/docs/_build/html/objects.inv; set it
to off to build without engine links.