Blacksite/docs/editor/sample-regression-pack.md

3.8 KiB

Editor Sample Regression Pack

The editor sample regression pack is the committed, deterministic first stop for content and native viewport QA. Its source of truth is assets/samples/editor_samples.ron; manifest order is also the order shown by File > Open Sample and by headless reports.

Open And Exercise A Sample

  1. Open File > Open Sample and choose the relevant area.
  2. Confirm the scene opens in a normal scene tab and the viewport contains the expected anchors.
  3. Perform the checks listed in the manifest and the table below.
  4. Watch the status strip and Diagnostics panel for missing references, hydration failures, or operator errors.
  5. Use Save As before destructive experimentation. The committed samples are regular project scenes, not disposable or read-only copies.

An invalid or unavailable manifest leaves an actionable disabled item in the menu. It must not silently fall back to another scene.

Pack Contents

Area Scene and visual composition Representative checks
Brush brush_blockout.scn.ron: broad concrete foundation, tall additive brush with a contrasting shared-material top face, red rotated subtractive marker Select object and face targets; enter brush edit; exercise draw/clip/CSG preview and cancel; verify shared face material resolution
Material material_lab.scn.ron: neutral floor, concrete cube, blue custom-surface sphere, rotated Material Instance block, cyan emissive backdrop Inspect shared Material/Instance paths; target a primitive with a Material drop; compare standard, custom, and emissive hydration
Terrain terrain_authoring_showcase.scn.ron: asymmetric 5x5 hill, four deterministic chunks, two painted shared-material layers Sculpt and paint preview/cancel; inspect normalized weights and layer refs; verify generated selection and collider state
Physics Placement physics_placement_showcase.scn.ron: cuboid, sphere, and tall capsule above a static floor Multi-select all three props; settle; cancel and compare exact starting transforms; repeat, commit, undo, and redo as one group
Rendering rendering_showcase.scn.ron: red sphere, cyan cube, amber block, emissive horizon, and three adjacent vignette/fog/exposure volumes Move the camera through all zones; inspect active-volume ownership; verify profile/fullscreen-effect refs and visible transitions

All authored sample actors have stable ActorId values. Generated hydration children are deliberately absent from the committed scene documents.

Headless Validation

Run both gates from the project root with Git LFS content hydrated:

cargo validate-levels --project .
cargo validate-samples --project .

validate-levels remains the authoritative project dependency/finding report. validate-samples adds the pack contract: schema and safe paths, exactly one entry per required area, stable actor IDs, authoring-only scene data, required area components, and nonempty operator checks. Either command must exit nonzero on a blocking finding. Use --json when attaching machine-readable evidence.

Maintenance Contract

  • Keep exactly the five areas Brush, Material, Terrain, PhysicsPlacement, and Rendering.
  • Treat manifest IDs as persistent automation keys; rename labels instead of IDs.
  • Keep scene paths project-relative, inside assets/levels/, and free of symlink or traversal escapes.
  • When a sample changes, update its manifest summary/checks and this visual-composition table in the same change.
  • Run the typed no-GPU scene test plus both validation commands before native QA.
  • Record exact-commit native results under evaluations/sample-regression-pack/. Implementation checks from a dirty worktree do not satisfy release-candidate acceptance.