BS-JD-302 - Terrain sculpt tools with stroke undo #23

Closed
opened 2026-06-06 01:48:05 -04:00 by Rbanh · 1 comment
Owner

Summary

Implement raise/lower, flatten, smooth, and noise sculpt brushes with one undo entry per stroke.

Why

Terrain becomes useful only when editable through fast, predictable viewport brush tools.

Implementation notes

  • Add modal sculpt tool state and brush radius/strength controls.
  • Implement raise/lower, flatten, smooth, and noise operations.
  • Preview brush footprint and affected terrain area.
  • Group each continuous stroke into one undo entry.

Acceptance criteria

  • Terrain sculpt modes modify heightmap data visibly.
  • Brush preview tracks cursor and terrain surface.
  • Escape/right-click cancels active stroke safely.
  • Undo/redo operates per stroke, not per sample.

Tests/docs

Heightmap operation tests and undo grouping tests. Update README controls and docs/editor terrain workflow.

Terrain Raise stroke with horizontal controls and one stroke undo

Committed evaluation record

## Summary Implement raise/lower, flatten, smooth, and noise sculpt brushes with one undo entry per stroke. ## Why Terrain becomes useful only when editable through fast, predictable viewport brush tools. ## Implementation notes - Add modal sculpt tool state and brush radius/strength controls. - Implement raise/lower, flatten, smooth, and noise operations. - Preview brush footprint and affected terrain area. - Group each continuous stroke into one undo entry. ## Acceptance criteria - [x] Terrain sculpt modes modify heightmap data visibly. - [x] Brush preview tracks cursor and terrain surface. - [x] Escape/right-click cancels active stroke safely. - [x] Undo/redo operates per stroke, not per sample. ## Tests/docs Heightmap operation tests and undo grouping tests. Update README controls and docs/editor terrain workflow. ![Terrain Raise stroke with horizontal controls and one stroke undo](https://git.spacetrainclubhouse.com/attachments/be1cce8e-cf48-47b0-ad64-8953e973cfe8) [Committed evaluation record](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/src/commit/293811a/docs/editor/evaluations/terrain-sculpt-tools/README.md)
Rbanh added this to the M3 - Terrain and physics placement milestone 2026-06-06 01:48:05 -04:00
Rbanh added the
roadmap:jackdaw
type:feature
priority:P1
area:terrain
labels 2026-06-06 01:48:05 -04:00
Author
Owner

Acceptance complete

Implementation and live evidence: 293811a

Delivered:

  • modal Raise, Lower, Flatten, Smooth, and deterministic Noise brushes;
  • terrain-local ray sampling with exact vertical-ray handling and interpolated continuous dabs;
  • colored terrain-following footprint plus compact radius/strength controls in the existing horizontal viewport toolbar;
  • exact pre-stroke restore on Escape/right-click;
  • restore-before-transaction commit yielding one reflected undo entry per completed stroke;
  • exclusive viewport pointer ownership, toolbar click-through prevention, and transform-gizmo suppression while sculpting;
  • README controls, terrain workflow documentation, implementation plan, and committed evaluation record.

Native Wayland terrain sculpt acceptance

Verification:

  • 7 focused brush math, ray hit, exact cancel, grouped undo/redo, and gizmo ownership tests;
  • cargo fmt --all -- --check;
  • cargo check --workspace --all-targets;
  • cargo clippy --workspace --all-targets -- -D warnings;
  • cargo test --workspace: 211 editor tests and all other workspace tests green, with the one intentional manual scene migration test ignored;
  • cargo validate-levels --project .: 60 dependencies, 5 existing non-blocking findings, 0 blockers;
  • cargo bake-navigation --project . --check: 1 current artifact;
  • git diff --check.

Native Wayland QA verified stable selection/tool activation, toolbar fit, footprint tracking, visible Raise deformation, no transform gizmo during sculpt, and exactly Undo: Raise Terrain after release. Packaged acceptance remains deferred by project-owner direction.

## Acceptance complete Implementation and live evidence: [`293811a`](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/commit/293811a) Delivered: - modal Raise, Lower, Flatten, Smooth, and deterministic Noise brushes; - terrain-local ray sampling with exact vertical-ray handling and interpolated continuous dabs; - colored terrain-following footprint plus compact radius/strength controls in the existing horizontal viewport toolbar; - exact pre-stroke restore on Escape/right-click; - restore-before-transaction commit yielding one reflected undo entry per completed stroke; - exclusive viewport pointer ownership, toolbar click-through prevention, and transform-gizmo suppression while sculpting; - README controls, terrain workflow documentation, implementation plan, and committed evaluation record. ![Native Wayland terrain sculpt acceptance](https://git.spacetrainclubhouse.com/attachments/be1cce8e-cf48-47b0-ad64-8953e973cfe8) Verification: - 7 focused brush math, ray hit, exact cancel, grouped undo/redo, and gizmo ownership tests; - `cargo fmt --all -- --check`; - `cargo check --workspace --all-targets`; - `cargo clippy --workspace --all-targets -- -D warnings`; - `cargo test --workspace`: 211 editor tests and all other workspace tests green, with the one intentional manual scene migration test ignored; - `cargo validate-levels --project .`: 60 dependencies, 5 existing non-blocking findings, 0 blockers; - `cargo bake-navigation --project . --check`: 1 current artifact; - `git diff --check`. Native Wayland QA verified stable selection/tool activation, toolbar fit, footprint tracking, visible Raise deformation, no transform gizmo during sculpt, and exactly `Undo: Raise Terrain` after release. Packaged acceptance remains deferred by project-owner direction.
Rbanh closed this issue 2026-07-12 19:53:20 -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#23
No description provided.