9.9 KiB
FreeCAD Demo Video Reference
Last updated: 2026-04-22 UTC
This file records the programmatic video artifacts built from real
cli-anything-freecad trajectories and real FreeCAD preview bundles.
Curiosity V6
Source trajectory:
/root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json
Current render target:
/root/preview-artifacts/20260421/freecad-curiosity-v6/demo.mp4
Final rendered artifact:
/root/preview-artifacts/20260421/freecad-curiosity-v6/demo.mp4- duration:
116.166667s - size:
3,011,924 bytes
Polished split-screen re-render:
/root/preview-artifacts/20260422/freecad-curiosity-v6/demo-polished.mp4- duration:
71.416667s - size:
2,266,665 bytes
Render command:
python3 /root/CLI-Anything-preview/docs/scripts/freecad_live_preview_demo.py \
render \
--timeline /root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json \
--speed 8
Ending showcase method:
- reuse the real final
Curiosity v6project JSON - add a staged ground and marker bed as extra real geometry
- generate extra real FreeCAD
preview capturehero bundles for a sequence of posed translations - append those real hero captures as a final full-screen showcase segment in the programmatic video
Expected showcase cache location:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase/sequence.json/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase/projects//root/preview-artifacts/20260421/freecad-curiosity-v6/showcase/captures/
Key stills:
- trajectory end:
/root/preview-artifacts/20260421/freecad-curiosity-v6/stills/trajectory-end.png - showcase start:
/root/preview-artifacts/20260421/freecad-curiosity-v6/stills/showcase-start.png - showcase mid:
/root/preview-artifacts/20260421/freecad-curiosity-v6/stills/showcase-mid.png - showcase final:
/root/preview-artifacts/20260421/freecad-curiosity-v6/stills/showcase-final.png
Implementation notes:
- the main split-screen section uses the real
Curiosity v6live session timeline and real copied preview bundles - the ending showcase uses
12extra real FreeCAD hero captures - the showcase segment begins after the main trajectory body and is rendered as a full-screen ending panel
- the current render was produced with
--speed 8, which keeps the long real trajectory readable without turning the video into a many-minute raw replay
Polished render command:
python3 - <<'PY'
import importlib.util
from pathlib import Path
script = Path('/root/CLI-Anything-preview/docs/scripts/freecad_live_preview_demo.py')
spec = importlib.util.spec_from_file_location('freecad_live_preview_demo', script)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
print(
mod.render_video(
Path('/root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json'),
output_path=Path('/root/preview-artifacts/20260422/freecad-curiosity-v6/demo-polished.mp4'),
fps=12,
speed=14.0,
keep_frames=True,
)
)
PY
Polished split-screen changes:
- left panel is now a designed
Agent Command Stream, not a literal terminal - command cards use the real captured command strings, normalized for readability
- the ending no longer uses sparse hero-capture blending
- the ending now uses the real combo motion sequence:
- one full turntable rotation
- followed by forward travel
- ending frames are pulled from
cli-anything-freecad motion render-videooutput via:/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/
Key stills for the polished render:
- early command stream:
/root/preview-artifacts/20260422/freecad-curiosity-v6/stills/early-command-stream.png - mid preview monitor:
/root/preview-artifacts/20260422/freecad-curiosity-v6/stills/mid-preview-monitor.png - showcase rotation:
/root/preview-artifacts/20260422/freecad-curiosity-v6/stills/showcase-rotation.png - showcase final drive:
/root/preview-artifacts/20260422/freecad-curiosity-v6/stills/showcase-final-drive.png
Notes:
- the split-screen body of the video is still based on the real CLI trajectory and the real live preview session
- the ending showcase is not a screen recording; it is a composition of extra real FreeCAD preview captures derived from the final project state
Curiosity V6 True Motion Showcase
Source trajectory:
/root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json
True-motion render target:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/curiosity_true_motion.mp4
Final rendered artifact:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/curiosity_true_motion.mp4- duration:
6.0s - frame count:
73 - size:
315,872 bytes
Render command:
python3 /root/CLI-Anything-preview/docs/scripts/freecad_live_preview_demo.py \
motion-showcase \
--timeline /root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json \
--output-dir /root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion \
--fps 12
Method:
- reuse the real final
Curiosity v6project JSON - add the staged showcase ground/markers as real geometry
- generate
13motion key poses across6.0s - store those keyframes in the project
motionscollection - invoke
cli-anything-freecad motion render-video - render every frame through real FreeCAD GUI capture and encode with
ffmpeg
Artifacts:
- motion project:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/curiosity_true_motion.json - motion manifest:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/motion_manifest.json - frame sequence:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/frames/sequence.json
Key stills:
- start:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/stills/start.png - mid:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/stills/mid.png - final:
/root/preview-artifacts/20260422/freecad-curiosity-v6-true-motion/stills/final.png
Notes:
- this showcase uses real frame-by-frame FreeCAD renders
- no blend-based or synthetic in-between motion is used
- motion is currently driven by part-placement keyframes, not native Assembly joint simulation
Curiosity Turntable Motion
Source trajectory:
/root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json
Turntable render target:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/curiosity_turntable_motion.mp4
Final rendered artifact:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/curiosity_turntable_motion.mp4- duration:
7.0s - frame count:
85 - size:
719,298 bytes
Render command:
python3 /root/CLI-Anything-preview/docs/scripts/freecad_live_preview_demo.py \
motion-showcase \
--motion-style spin \
--timeline /root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json \
--output-dir /root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion \
--fps 12
Method:
- reuse the real final
Curiosity v6project JSON - add the staged showcase ground/markers as real geometry
- generate
19turntable key poses across7.0s - rotate the rover around its stage-centered pivot
- invoke
cli-anything-freecad motion render-video - render every frame through real FreeCAD GUI capture and encode with
ffmpeg
Artifacts:
- motion project:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/curiosity_turntable_motion.json - motion manifest:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/motion_manifest.json - frame sequence:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/frames/sequence.json
Key stills:
- start:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/stills/start.png - mid:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/stills/mid.png - final:
/root/preview-artifacts/20260422/freecad-curiosity-v6-turntable-motion/stills/final.png
Notes:
- this turntable is also a real frame-by-frame FreeCAD render
- no synthetic in-between frames are used
- orientation is currently driven by per-part placement keyframes, not native Assembly joint simulation
Curiosity Combo Motion
Source trajectory:
/root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json
Combo render target:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/curiosity_combo_motion.mp4
Final rendered artifact:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/curiosity_combo_motion.mp4- duration:
9.0s - frame count:
109
Render command:
python3 /root/CLI-Anything-preview/docs/scripts/freecad_live_preview_demo.py \
motion-showcase \
--motion-style combo \
--timeline /root/preview-artifacts/20260421/freecad-curiosity-v6/trajectory.json \
--output-dir /root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion \
--fps 12
Method:
- reuse the real final
Curiosity v6project JSON - add the staged showcase ground/markers as real geometry
- generate
25motion key poses across9.0s - first do one full turntable rotation
- then drive forward across the stage
- render every frame through real FreeCAD GUI capture
- encode the result to MP4 with
ffmpeg
Artifacts:
- motion project:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/curiosity_combo_motion.json - motion manifest:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/motion_manifest.json - frame sequence:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/frames/sequence.json
Key stills:
- start:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/stills/start.png - mid:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/stills/mid.png - final:
/root/preview-artifacts/20260421/freecad-curiosity-v6/showcase-motion/stills/final.png