Skip to content

Render Editor Mixed Camera Navigation

easylogic edited this page Oct 10, 2026 · 2 revisions

Navigate the mixed camera

Feature key: RE-V01. Issue: #1169. Native receipt.

Status: merged; integration validation pending. Exact availability 9e0815ec3caa01af6e8f15dddb2beccdf8903460; native receipt unchanged. This is one common view camera. Camera objects and a complete 3D production workflow remain separate work.

Use the camera

Control Action
Orbit Drag to rotate around the camera target.
Pan / Shift-drag Move eye and target together.
Wheel / + / - Move nearer or farther.
Arrow keys Navigate in the selected Orbit or Pan mode. Shift pans.
Use view Apply the preview camera through complete Apply.
Cancel view / Escape Restore the applied camera without a history entry.
Help Open Camera controls; closing returns focus and preserves preview.

Orbit and Pan stay on the viewport toolbar. Use view and Cancel view appear during navigation. The numerical inspector shows View preview and disables editing while navigation is pending. Other source/property/history/file actions require Use or Cancel first. Extended explanations stay in Help.

A preview uses the applied original scene and native asset. Dragging does not commit pending fields. Use restores the accepted frame, stages the new camera and runs complete Apply once. Invalid unrelated fields can refuse Apply. Those fields and the camera draft stay available for correction; the Camera heading then says Draft. The accepted frame remains visible. A manually edited camera draft receives a replacement notice before Use.

A rendering-profile refusal keeps the last successful preview and shows correction text. Cancel clears preview only after presenting the applied frame. Failed restoration stays pending for retry. Stale inputs, queued frames, pointer capture, blur, detach and disposal are handled. Context loss drops transient navigation and keeps CPU document authority. Bitwise context restoration is not proven here. Preview state is never saved.

Native evidence

Exact parent b097ba52ab6c27e6698816c8949c86dd0a9f4540 → clean child 5bb3e2b532e43520f1c42180e15eeca63218da06: two commits, ten owned package/app paths. Worktree /Users/user/.codex/worktrees/render-editor-camera/barocss; branch codex/render-editor-camera-1169. Manifest /Users/user/.barocss-ai/v3/render-editor-1169/handoff-5bb3e2b5.json; SHA256 454af8cded2079cb175cc216b506b5ea525fda74175e57c8ac5d869e5d04fb09.

Both final affected builds passed. Source/API flow passed with217 source inputs/own dist0. Controller presentation units use mocks, separate from real browser proof; final root API product blobs are unchanged from the tested API child. The helper uses actual GPU camera validation/basis and the same mixed presenter.

Actual CUA in-app Chromium/WebGL2 at1280×720 verified drag Orbit/Pan/wheel/keyboard, preview with accepted15 unchanged, Cancel, Use16/Undo17/Redo18, hidden raw Position - and invalid source refusal, corrected Apply19, near-Sphere zoom refusal, Help and focus. Separate1000×760 preview/Cancel and camera command bounds passed; the full functional flow was at1280×720. Interior JPEG differences confirm Orbit/Pan/Zoom changed the frame and Cancel matched; this is not wholeRGBA or device-wide proof.

Actual Save19 → fresh native-picker Open19 → re-edit20 → actual1928-byte Save20 passed. Cold qualification confirms exact non-camera fields, complete original source/native model/weights/knots/IDs/assetrevision1/signed zero; ephemeral preview absent. Evidence /Users/user/.barocss-ai/v3/render-editor-1169/evidence/final-browser/complete-browser-record.json, cold-file.json, viewport-jpeg-diff.json and saved JPEGs. The script checks source/API and cold downloaded files; CUA drove the actual GUI.

Preserved first receipts: partial browser led to the truthful Draft label fix; driver reload/reader closure needed explicit fresh tab handles; new tab needed its own minimum viewport; IAB download event timed out although the file existed; (1) filename suffix initially caused a failed cold lookup. Exact actual downloads were then verified. Bundled Python handled JPEG comparison after system PIL absence. Builds/API passed first.

Delivery and remaining scope

The exact delta was sent once to sole Integration. Tool acceptance is separate from merge. The parent already contains Title1136, Unsaved1163 and reconciled Point1143/Duplicate1153; earlier native ranges were not replayed. Current mixed admission is exactly one Sphere and one selected native Surface. No extra camera object, rendered picking, gizmo, material, light, new renderer or source writer was added. Integrated screen/file/recovery and commercial acceptance remain separate.

The owner now targets a Blender-level 3D creation tool. Structured object creation/properties, broader composition, transforms, materials/lights/camera objects, animation and rendering/output remain in the product roadmap. This camera slice does not claim parity.

Clone this wiki locally