Open code, practice, and notes →
Download source with English comments · for reading
Gaussian Splatting · 24 Keyboard Controls and Camera Recovery
Series contents · Technology map
Stage: A Measurable GS Exhibition Viewer · Editable example · Storage ID: gaussian-splatting-step-24
Goals and learning outcomes
- Provide multiple input methods.
- Save the complete camera recovery state.
Prerequisites
Continue using the output and records from Unit 23. Before the Keyboard Controls and Camera Recovery experiment, preserve the previous inputs and reference outputs.
Key concepts and explanations
Control paths
Camera controls tied only to the pointer make scene exploration difficult for some users. Provide keyboard movement and an explicit reset button.
Range limits
Moving the camera too far inside the data makes the scene difficult to understand. Define movement limits together with data bounds.
Practice setup
First check the execution scope guidance on the example screen. The following describes the environment needed to extend the assignment in a separate project. This is a document-guided exercise in a separate local project. Use only small data you create or local files whose usage permission you have checked. The existing preview is a CPU teaching viewer for .splat/ASCII GS PLY files of at most 1 MiB and 512 items; it is not a Spark GPU renderer.
The linked example is a starting point. It does not implement every task below. Complete work beyond its supported scope in a separate project.
Practice tasks
- In controls.js, define arrow-key movement, zoom, and reset actions.
- Prevent camera shortcuts from running while a form is being edited.
- Using only the keyboard, move to three viewpoints, reset, and compare camera.json.
Variables to observe
| Variable | Baseline | Change | Expected change / hypothesis |
|---|---|---|---|
| Movement speed | 1% of the bounds size | 10% | Expect faster exploration but a greater chance of passing small features. |
Predictions in this table are not measured results. Change one condition at a time and record why the actual result differs.
Completion criteria
- Perform movement, zoom, and reset without a mouse.
- Pressing arrow keys in an input field does not change camera values.
Self-check
- How does a fixed numeric movement unit affect different datasets?
- Which values besides position does reset need?
Official references
Linked example and execution scope
Example source · Runtime environments and limits
CPU Canvas2D synthetic fixtures and contract checks. This does not provide Spark GPU rendering, training data, or claims about reconstruction quality or GPU performance.
Source code and records are not overwritten automatically. Resetting an existing example also preserves your notes.
Next learning
Previous: Resource Lifetimes and Repeated Loading · Next: Integrated Failure-State Tests