Label Unification and Correspondence in 3D Annotation GUI in Web Browser Multi-view pose annotation GUI. No build system — pure vanilla JS served as static files.
Full documentation, tutorials, and user guides: (https://talmolab.github.io/luc3d-docs)
index.html— Main SPA with all app logic in inline scriptpose-data.js— Data model (Skeleton, Camera, Instance, FrameGroup, InstanceGroup, Session)interaction.js— Mouse/keyboard interaction, hit testing, drag handlingoverlays.js— Canvas rendering for pose skeletons and overlaystriangulation.js— DLT triangulation + reprojection mathvideo.js— WebCodecs video decoding (OnDemandVideoDecoder)viewport3d.js— Three.js 3D visualizationtimeline.js— SLEAP-like timeline widgetfile-io.js— File loading, calibration parsing, export (TOML/JSON/SLP)demo-data.js— Demo skeleton and camera datastyles.css— All styling
python3 -m http.server 8080 --bind 0.0.0.0
# App: http://localhost:8080/
# Tests: http://localhost:8080/tests/test-runner.htmlhttps://talmolab.github.io/luc3d/- Three.js 0.147
- mp4box.js
- All loaded via script tags in index.html
Browser-based tests in tests/test-runner.html. Open in browser to run.
scripts/json_to_slp.py— Convert JSON export to SLEAP .slp formatscripts/json_to_h5.py— Convert JSON export to HDF5 format- Require: h5py, numpy
