BS-JD-304 - Physics placement tool #25

Closed
opened 2026-06-06 01:48:06 -04:00 by Rbanh · 0 comments
Owner

Summary

Let users select props, release them into simulated gravity, then commit or cancel settled transforms.

Why

Physics placement is a practical prop-authoring workflow that uses the existing Avian/PIE foundation without manually tuning every transform.

Implementation notes

  • Added a transactional Edit-mode placement session for selected authored props with rigid-body and non-trigger collider data.
  • Placement runs deterministic Avian steps while normal Edit physics remains paused.
  • Selected bodies become temporary dynamics; unrelated movable bodies are frozen as collision surfaces and restored exactly.
  • Commit records one grouped transform history operation. Cancel restores transforms and runtime physics state without dirtying history.
  • Integrated controls and live status into the existing horizontal viewport toolbar.

Acceptance criteria

  • Selected props can drop/settle onto colliders.
  • User can commit or cancel without corrupting authored state.
  • Tool reports missing collider/rigid body prerequisites.
  • Undo restores pre-placement transforms.

Evidence

Implemented and published on main in 0e7aed4.

Physics placement settled preview

The committed fixture is assets/levels/physics_placement_showcase.scn.ron; the workflow and transactional contract are documented in docs/editor/physics-placement.md and ADR 0041.

Verification

  • cargo test --workspace --all-targets --no-fail-fast
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • git diff --check
  • target/debug/validate-levels: 61 dependencies, 5 existing non-blocking findings, 0 blocking errors
  • Live Wayland QA: settle, cancel, commit, undo, redo, scene switching, toolbar/HUD, and missing-prerequisite feedback
  • Packaged tests deferred by current project instruction.
## Summary Let users select props, release them into simulated gravity, then commit or cancel settled transforms. ## Why Physics placement is a practical prop-authoring workflow that uses the existing Avian/PIE foundation without manually tuning every transform. ## Implementation notes - Added a transactional Edit-mode placement session for selected authored props with rigid-body and non-trigger collider data. - Placement runs deterministic Avian steps while normal Edit physics remains paused. - Selected bodies become temporary dynamics; unrelated movable bodies are frozen as collision surfaces and restored exactly. - Commit records one grouped transform history operation. Cancel restores transforms and runtime physics state without dirtying history. - Integrated controls and live status into the existing horizontal viewport toolbar. ## Acceptance criteria - [x] Selected props can drop/settle onto colliders. - [x] User can commit or cancel without corrupting authored state. - [x] Tool reports missing collider/rigid body prerequisites. - [x] Undo restores pre-placement transforms. ## Evidence Implemented and published on `main` in [0e7aed4](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/commit/0e7aed40f11bf0bdd345ec5ddeb012660de7dc19). ![Physics placement settled preview](https://git.spacetrainclubhouse.com/attachments/eddc1122-80c0-43f3-9483-737145d6d5e7) The committed fixture is `assets/levels/physics_placement_showcase.scn.ron`; the workflow and transactional contract are documented in `docs/editor/physics-placement.md` and ADR 0041. ## Verification - `cargo test --workspace --all-targets --no-fail-fast` - `cargo clippy --workspace --all-targets -- -D warnings` - `cargo fmt --all -- --check` - `git diff --check` - `target/debug/validate-levels`: 61 dependencies, 5 existing non-blocking findings, 0 blocking errors - Live Wayland QA: settle, cancel, commit, undo, redo, scene switching, toolbar/HUD, and missing-prerequisite feedback - Packaged tests deferred by current project instruction.
Rbanh added this to the M3 - Terrain and physics placement milestone 2026-06-06 01:48:06 -04:00
Rbanh added the
roadmap:jackdaw
type:feature
priority:P1
area:physics
labels 2026-06-06 01:48:06 -04:00
Rbanh closed this issue 2026-07-12 22:08:47 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#25
No description provided.