Implement Phase 19 updates and user/editor verification
- Updated architectural specifications for Phase 19 scenery, backgrounds, and surface finishes to reflect implementation status and user verification results. - Revised UI/UX specifications for background ground and wall color, plain background, and starter scene composition to indicate successful implementation and verification. - Enhanced scenery controller and sandbox stage scripts to improve eraser functionality and user interactions. - Adjusted test cases to align with the latest changes in scenery and background implementations, ensuring all checks pass successfully. - Added new buttons for wall area erasure in the scenery capture bar and updated layout handling for better user experience.
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Background Ground and Wall Color
|
||||
|
||||
> **Status:** Accepted product design for a focused Phase 19 follow-up. This brief is the Designer handoff to UI/UX and architecture specifications; it does not define runtime APIs or node structure.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19. The scenery suite passes **706 checks with 0 failures**. This brief remains the product-level record; runtime contracts are in the linked architecture specification.
|
||||
|
||||
## Goal and audience
|
||||
|
||||
|
||||
@@ -1,42 +1,28 @@
|
||||
# Phase 19 handoff
|
||||
|
||||
Phase 19 is in progress on the local branch `feature/phase-19-scenery`. This is a continuation note for the next work session/computer; the detailed product, UI, and architecture contracts remain in the linked documents below. The branch is local and must be pushed after the reviewed changes are committed before another computer can fetch it.
|
||||
**Status (2026-10-22): Complete and user/editor verified.** The user verified the integrated Phase 19 behaviors in the editor, including camera-aware Sky details, starter compositions, surface finishes, Plain Background, scenery artwork/depth, furniture behavior, and Plain Background save/reopen. The final `tests/test_phase19_scenery.gd` run passed **706 checks with 0 failures** (Godot exit code 0).
|
||||
|
||||
## Current state
|
||||
The implementation provides Sky and Plain Background choices, editable Plain color, wall panels and background ground, inert Scenery artwork with depth and resize controls, Ground finishes, and four editable New Scene starters. Stage-wide Undo/Redo remains deliberately deferred and is tracked as technical debt. No further Phase 19 implementation or user verification is outstanding.
|
||||
|
||||
The integrated feature lets children choose a Sky, place and edit inert Scenery artwork and wall panels, paint Ground finishes, use editable starter scenes, and save/reopen the result. Scenery artwork can be placed Far, Near, or On the floor and resized independently. The Prop Editor has a stickman-relative size guide and reversible size presets for authoring art at a useful scale. Missing artwork remains visible and repairable.
|
||||
## Verification record
|
||||
|
||||
Recent reported editor issues were addressed during Phase 19 iteration, including scene loading, grid snapping/placement previews, starter-scene thumbnails, artwork cursor alignment, wall-panel erasing and tile rendering, scenery size/depth controls, and the scenery chooser's surface-setup flow. Treat those fixes as needing a focused regression pass on the next machine; the user has not completed overall Phase 19 testing. The selected-artwork depth inspector was the latest specifically approved piece.
|
||||
- **Automated:** `tests/test_phase19_scenery.gd` — 706 PASS checks, 0 failures, exit code 0, Godot 4.7.1. The run used a temporary Windows Roaming AppData location after the default profile path failed during Godot log initialization. Godot also logged a root-certificate-store warning; it did not affect the suite result.
|
||||
- **User/editor:** The user reports completion of all planned visual and interactive checks across camera-aware Sky, both starter compositions, surface finish resizing/tiling, Plain Background, scenery/artwork, and furniture behavior. The user separately confirmed Plain Background save/reopen. Do not interpret that as a manual save/reopen check for every manifest asset; persistence is additionally covered by automated paths.
|
||||
- **Test command:**
|
||||
|
||||
### Latest bug fix: surface setup chooser visibility (2026-10-19)
|
||||
|
||||
The Paint/Brick/Wood wall setup and Carpet background-ground setup previously put the Draw action after the color controls, where it could fall below the visible part of the dialog. In setup mode, the chooser now moves its action row (Cancel + Draw) above the scrollable setup content, compacts the setup layout, limits the popup to the usable screen area, and re-centers after size changes. Look choices and color controls remain scrollable. Outside clicks are blocked from reaching the Stage, and an unexpected popup hide restores the chooser instead of cancelling setup.
|
||||
|
||||
The latest focused Godot GUI run of `tests/test_phase19_surface_followup.gd` passed after this change. Its capture showed the Draw action visible for wall and background-ground setup. The test also passed its placement, color, erase, and outside-click scenarios. Captures and logs are in `/private/tmp` on the current Mac and are not repository artifacts.
|
||||
|
||||
The chooser fix is currently uncommitted in `scripts/shared/ui/asset_selector.gd`, `scripts/shared/stage_ui/stage_surface_color_controls.gd`, and `scripts/editors/stage/stage_asset_browser.gd`, with related assertions in `tests/test_phase19_surface_followup.gd`. Include these changes and this handoff update in the commit before pushing the branch for the other computer.
|
||||
|
||||
Stage-wide Undo/Redo is deliberately out of scope and recorded as technical debt for a separate phase. No new scene save workflow was requested; the current ordinary scene and Prop save flows remain authoritative.
|
||||
```powershell
|
||||
& "C:\Godot4\Godot_v4.7.1-stable_win64_console.exe" --headless --path . --script res://tests/test_phase19_scenery.gd
|
||||
```
|
||||
|
||||
## Start here
|
||||
|
||||
- [Phase 19 product plan](phase_19_scenery_backgrounds_surface_finishes.md) — child flow, feature scope, content manifest, acceptance criteria, and remaining user checks.
|
||||
- [Phase 19 architecture and implementation spec](../specs/phase_19_scenery_backgrounds_surface_finishes.md) — runtime/file contracts, Stage-relative sizing amendment, implementation details, and verification expectations.
|
||||
- [Phase 19 UI/UX spec](../specs/phase_19_scenery_backgrounds_ui_ux.md) — child-facing interaction and reusable UI guidance.
|
||||
- [Selected Scenery artwork depth spec](../specs/phase_19_selected_artwork_depth_inspector.md) — Far/Near/On the floor inspector behavior.
|
||||
- [Stage panel UI system](../specs/stage_panel_ui_system.md) — shared in-stage inspector components and visual conventions.
|
||||
- [Technical debt log](../architecture/tech_debt_and_optimizations.md) — includes deferred Stage Undo/Redo.
|
||||
- [Phase 19 product plan](phase_19_scenery_backgrounds_surface_finishes.md) — approved scope, starter behavior, asset manifest, and success criteria.
|
||||
- [Phase 19 architecture specification](../specs/phase_19_scenery_backgrounds_surface_finishes.md) — Stage/file contracts, camera-aware Sky, scenery editing, and acceptance routes.
|
||||
- [Phase 19 UI/UX specification](../specs/phase_19_scenery_backgrounds_ui_ux.md) — Stage chooser and interaction behavior.
|
||||
- [Plain Background plan](phase_19_plain_background.md) and [architecture specification](../specs/phase_19_plain_background.md) — solid backdrop, chooser flow, and persistence.
|
||||
- [Starter composition brief](phase_19_starter_scene_composition.md) and [architecture specification](../specs/phase_19_starter_scene_composition.md) — Town Street and Living Room layouts.
|
||||
- [Background Ground and Wall Color brief](phase_19_background_ground_and_wall_color.md) — decorative surfaces and shared color behavior.
|
||||
- [Selected artwork depth specification](../specs/phase_19_selected_artwork_depth_inspector.md) — Far/Near/On the floor inspector behavior.
|
||||
- [Technical debt log](../architecture/tech_debt_and_optimizations.md) — deferred Stage Undo/Redo.
|
||||
|
||||
## Verification entry point
|
||||
|
||||
Run the focused Phase 19 suite with Godot 4.7.1 from the repository root:
|
||||
|
||||
```powershell
|
||||
& "C:\Godot4\Godot_v4.7.1-stable_win64_console.exe" --headless --path . --script res://tests/test_phase19_scenery.gd
|
||||
```
|
||||
|
||||
Also run affected compatibility suites when changing shared Stage, Prop, or asset-browser code: `tests/test_phase10_prop_integration.gd`, `tests/test_phase17a_prop_roles.gd`, `tests/test_phase7_palette.gd`, plus the relevant Prop Editor and scene-I/O tests. Headless success is not the final acceptance gate: open the Sandbox Stage in the GUI, exercise the plan's focused scenarios, and inspect the actual rendering. Keep Phase 19 marked in progress until the user's overall editor verification is complete.
|
||||
|
||||
## Handoff hygiene
|
||||
|
||||
Commit the implementation, production `.prop` assets and `.scene` starters, specifications, handoff/plan/debt updates, test source and required `.uid` metadata, plus relevant regression-test updates. Do not include generated test captures/logs or `tests/godot_test_user_data/` unless a later task explicitly promotes selected evidence into maintained documentation. Review the complete diff before staging; this working tree intentionally remains unstaged and uncommitted for that review.
|
||||
Phase 19 is complete. Later work should use the linked specifications and keep Stage-wide Undo/Redo in its separate scope.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Plain Background
|
||||
|
||||
> **Status:** Accepted product direction for a focused Phase 19 addition. This is a design handoff to the spec-pipeline, not a UI/UX or architecture specification.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19. The user explicitly verified Plain Background save/reopen; the Phase 19 scenery suite passes **706 checks with 0 failures**. Detailed presentation and file behavior are specified in the linked Plain Background UI/UX and architecture documents.
|
||||
> **Relationship to Phase 19:** This brief updates only the earlier three-card **File → New** choice and the four-Sky-only **Backgrounds** choice. Other accepted Scenery, starter composition, Sky, Ground, and artwork behavior remains as described in the existing Phase 19 plans and specifications.
|
||||
|
||||
## Goal and audience
|
||||
@@ -11,7 +11,7 @@ The background is a scene-wide visual choice. It fills the camera view in **EDIT
|
||||
|
||||
## PNG mockups
|
||||
|
||||
**Review status:** The starter and Backgrounds PNGs are user-approved. The color-choices and custom-picker PNGs were revised per user feedback: tapping the current-color chip opens the picker without a separate **More colors** button, and the custom picker shows a simple **Preview** label with no temporary-state helper message. These revisions are included for final spec sign-off. The production initial color is warm off-white `#F5EFE0`; Plain Background previews use a uniform solid fill. Editable SVG source files sit beside each PNG.
|
||||
**Review status:** The starter and Backgrounds PNGs are user-approved. The color-choices and custom-picker PNGs were revised per user feedback: tapping the current-color chip opens the picker without a separate **More colors** button, and the custom picker shows a simple **Preview** label with no temporary-state helper message. The final mockups were approved and implemented. The production initial color is warm off-white `#F5EFE0`; Plain Background previews use a uniform solid fill. Editable SVG source files sit beside each PNG.
|
||||
|
||||
- [New Scene starter chooser](assets/phase_19_plain_background/01_new_scene.png)
|
||||
- [Larger New Scene chooser proposal](assets/phase_19_plain_background/05_large_starter_chooser.png) — expands the same four cards and gives each preview more room; retain the bounded, scrollable layout on smaller screens.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Scenery, Backgrounds, and Vector Surface Finishes
|
||||
|
||||
> **Status:** The original Phase 19 implementation, including Stage-relative asset sizing and the selected-artwork depth inspector, is integrated; automated and render-capable checks pass. The camera-aware Sky details addendum below is accepted design work awaiting implementation and user/editor verification. See the [Phase 19 handoff](phase_19_handoff.md) for continuation context and verification entry points.
|
||||
> **Status (2026-10-22):** Phase 19 implementation and user/editor verification are complete. The user verified the integrated Sky, starter compositions, surface finishes, Plain Background, Scenery artwork, and furniture behavior in the editor, including Plain Background save/reopen. The Phase 19 scenery suite passes **706 checks with 0 failures**. Stage-wide Undo/Redo remains deferred. The later [Plain Background addendum](phase_19_plain_background.md) adds Plain Background and renames the original neutral-Sky Blank Scene choice **Open Sky**; see the [Phase 19 handoff](phase_19_handoff.md) for the verification record.
|
||||
> **Audience:** UI/UX, architecture, implementation, and art contributors.
|
||||
> **Purpose:** Define the child experience and the content required for indoor and outdoor sets. Rendering, file contracts, and GDScript APIs belong in later specifications.
|
||||
|
||||
@@ -113,20 +113,20 @@ Excluded from Phase 19: a new Scenery Editor or `.scenery` file; child-authored
|
||||
|
||||
## Asset production manifest
|
||||
|
||||
This is the authoritative content checklist for the two starters and the shared pickers. The initial status of every row was **Needed**. Progress through **Needed → Concept ready → Art approved → Final vector ready → Integrated → Verified**. Following user approval on 2026-10-15, the approved `.prop` vectors, Sky themes, and finishes are integrated into the production Stage, shared picker, and starter scenes. Evidence below records the current Phase 2 checks; final user/editor verification remains pending. A raster sketch may reach **Concept ready**; it is not a final `.prop`, Sky theme, or repeatable vector finish. Final cutouts must be repo-native vector/`.prop` artwork, and Sky/finish visuals must remain crisp through Stage zoom. Art contributors may use raster concept images as reference, then produce final assets in coordination with implementation.
|
||||
This is the authoritative content checklist for the two starters and the shared pickers. The initial status of every row was **Needed**. Progress through **Needed → Concept ready → Art approved → Final vector ready → Integrated → Verified**. Following user approval on 2026-10-15, the approved `.prop` vectors, Sky themes, and finishes are integrated into the production Stage, shared picker, and starter scenes. The complete manifest now records production integration, automated verification, and user/editor visual verification completed on 2026-10-22. The user also verified Plain Background save/reopen; this does not claim a manual save/reopen check for every manifest item. A raster sketch may reach **Concept ready**; it is not a final `.prop`, Sky theme, or repeatable vector finish. Final cutouts must be repo-native vector/`.prop` artwork, and Sky/finish visuals must remain crisp through Stage zoom. Art contributors may use raster concept images as reference, then produce final assets in coordination with implementation.
|
||||
|
||||
In the tables, **TBD** in Source/rights means the creator, reference provenance, and license or permission still need recording. **TBD** in Final location and Evidence means those fields must be filled as content is produced. For each row, validation evidence should include a thumbnail or Sky/finish preview, the asset in the Stage at normal and zoomed views, and save/reopen of its starter use where applicable. Stable IDs identify deliverables; they are not prescribed file names or runtime contracts.
|
||||
|
||||
### Adaptive Sky themes
|
||||
|
||||
The **Integrated** statuses below describe the original Sky artwork and picker. Camera-aware detail behavior is accepted in the addendum above and remains to be implemented and verified.
|
||||
The **Verified** statuses below describe the production Sky artwork and picker, including the camera-aware detail behavior. The user completed editor visual verification on 2026-10-22.
|
||||
|
||||
| Stable ID | Class / final format | Tags / default layer | Starter use | Behavior / collision | Status | Source / rights | Visual acceptance | Final location / definition | Validation evidence |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `sky_clear_day` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Living Room; picker | Scene-wide; camera-aware details; none | Integrated | Original vector concept | Appealing blue depth and varied light cloud/sun detail; window gap reads clearly; no edge on pan. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Living Room Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_living_room.png`; user pan/zoom check pending. |
|
||||
| `sky_cloudy_day` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Town Street; picker | Scene-wide; camera-aware details; none | Integrated | Original vector concept | Layered, varied clouds leave town silhouettes readable; no obvious tile or edge. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Town Street Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_town_street.png`; user pan/zoom check pending. |
|
||||
| `sky_sunset` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Picker | Scene-wide; camera-aware details; none | Integrated | Original vector concept | Warm atmospheric color and sun/cloud composition remain distinct from Clear Day without tinting scene objects. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_finishes_and_repair.png`; user pan/zoom check pending. |
|
||||
| `sky_starry_night` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Picker | Scene-wide; camera-aware details; none | Integrated | Original vector concept | Dark graduated sky, varied stars, and moon remain legible while foreground contrast survives. | `scripts/stage/scenery/stage_sky_view.gd` | Distinct production gallery preview inspected: `tests/phase19_visual_background_gallery.png`; full Stage user check pending. |
|
||||
| `sky_clear_day` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Living Room; picker | Scene-wide; camera-aware details; none | Verified | Original vector concept | Appealing blue depth and varied light cloud/sun detail; window gap reads clearly; no edge on pan. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Living Room Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `sky_cloudy_day` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Town Street; picker | Scene-wide; camera-aware details; none | Verified | Original vector concept | Layered, varied clouds leave town silhouettes readable; no obvious tile or edge. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Town Street Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_town_street.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `sky_sunset` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Picker | Scene-wide; camera-aware details; none | Verified | Original vector concept | Warm atmospheric color and sun/cloud composition remain distinct from Clear Day without tinting scene objects. | `scripts/stage/scenery/stage_sky_view.gd` | Production card and Stage render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_finishes_and_repair.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `sky_starry_night` | Adaptive vector Sky theme; not `.prop` | N/A; Sky | Picker | Scene-wide; camera-aware details; none | Verified | Original vector concept | Dark graduated sky, varied stars, and moon remain legible while foreground contrast survives. | `scripts/stage/scenery/stage_sky_view.gd` | Distinct production gallery preview inspected: `tests/phase19_visual_background_gallery.png`; full Stage/editor visual verification completed 2026-10-22. |
|
||||
|
||||
### Repeatable vector surface finishes
|
||||
|
||||
@@ -134,16 +134,16 @@ These are finish definitions and previews, not ordinary Props. Ground finishes c
|
||||
|
||||
| Stable ID | Class / final format | Tags / default layer | Starter use | Behavior / collision | Status | Source / rights | Visual acceptance | Final location / definition | Validation evidence |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `finish_wall_paint` | Vector wall finish | N/A; wall panel | Living Room; picker | Inert panel; none | Integrated | Original vector concept | Smooth green room wall and other chosen colors without seams at panel edges. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview and Living Room render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_living_room.png`; user resize check pending. |
|
||||
| `finish_wall_brick` | Repeatable vector wall finish | N/A; wall panel | Picker | Inert panel; none | Integrated | Original vector concept; user image used as inspiration for v2 | Bricks keep coherent size and joins as panel is resized. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview and Stage wall render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_finishes_and_repair.png`; user resize check pending. |
|
||||
| `finish_wall_wood` | Repeatable vector wall finish | N/A; wall panel | Picker | Inert panel; none | Integrated | Original vector concept | Boards read as wood at common Stage zoom and do not stretch with the panel. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview inspected: `tests/phase19_visual_background_gallery.png`; user resize check pending. |
|
||||
| `finish_ground_paint` | Vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Integrated | Original vector concept | Plain color is clean and visually distinct from wall-only backdrop. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user visual check pending. |
|
||||
| `finish_ground_brick` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Integrated | Original vector concept | Neighboring pieces form a continuous brick surface. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user tiling check pending. |
|
||||
| `finish_ground_wood` | Repeatable vector Ground finish | N/A; Ground | Living Room; picker | Solid, walkable Ground | Integrated | Original vector concept | Wood plank floor reads continuously beneath rug and furniture. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Living Room scene and Ground renderer integrated; Phase 19 runtime suite passed; user visual check pending. |
|
||||
| `finish_ground_grass` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Integrated | Original vector concept | Grassy surface is readable and not noisy behind feet. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground render inspected: `tests/phase19_visual_finishes_and_repair.png`; runtime suite passed; user visual check pending. |
|
||||
| `finish_ground_dirt` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Integrated | Original vector concept | Earthy surface remains distinct from Grass at thumbnail and Stage size. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user visual check pending. |
|
||||
| `finish_ground_sidewalk` | Repeatable vector Ground finish | N/A; Ground | Town Street; picker | Solid, walkable Ground | Integrated | Original vector concept | Light concrete sidewalk forms a broad, aligned run beneath shops. | `scripts/stage/scenery/stage_surface_renderer.gd` | Town Street starter load and runtime suite passed; user visual/tiling check pending. |
|
||||
| `finish_ground_asphalt` | Repeatable vector Ground finish | N/A; Ground | Town Street; picker | Solid, walkable Ground | Integrated | Original vector concept | Darker road contrasts with sidewalk while preserving visible character edges. | `scripts/stage/scenery/stage_surface_renderer.gd` | Town Street starter load and runtime suite passed; user visual/tiling check pending. |
|
||||
| `finish_wall_paint` | Vector wall finish | N/A; wall panel | Living Room; picker | Inert panel; none | Verified | Original vector concept | Smooth green room wall and other chosen colors without seams at panel edges. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview and Living Room render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_wall_brick` | Repeatable vector wall finish | N/A; wall panel | Picker | Inert panel; none | Verified | Original vector concept; user image used as inspiration for v2 | Bricks keep coherent size and joins as panel is resized. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview and Stage wall render inspected: `tests/phase19_visual_background_gallery.png`, `tests/phase19_visual_finishes_and_repair.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_wall_wood` | Repeatable vector wall finish | N/A; wall panel | Picker | Inert panel; none | Verified | Original vector concept | Boards read as wood at common Stage zoom and do not stretch with the panel. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production gallery preview inspected: `tests/phase19_visual_background_gallery.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_paint` | Vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Verified | Original vector concept | Plain color is clean and visually distinct from wall-only backdrop. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_brick` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Verified | Original vector concept | Neighboring pieces form a continuous brick surface. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_wood` | Repeatable vector Ground finish | N/A; Ground | Living Room; picker | Solid, walkable Ground | Verified | Original vector concept | Wood plank floor reads continuously beneath rug and furniture. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Living Room scene and Ground renderer integrated; Phase 19 runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_grass` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Verified | Original vector concept | Grassy surface is readable and not noisy behind feet. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground render inspected: `tests/phase19_visual_finishes_and_repair.png`; runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_dirt` | Repeatable vector Ground finish | N/A; Ground | Picker | Solid, walkable Ground | Verified | Original vector concept | Earthy surface remains distinct from Grass at thumbnail and Stage size. | `scripts/stage/scenery/stage_surface_renderer.gd` | Production Ground renderer is integrated with Stage; Phase 19 runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_sidewalk` | Repeatable vector Ground finish | N/A; Ground | Town Street; picker | Solid, walkable Ground | Verified | Original vector concept | Light concrete sidewalk forms a broad, aligned run beneath shops. | `scripts/stage/scenery/stage_surface_renderer.gd` | Town Street starter load and runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `finish_ground_asphalt` | Repeatable vector Ground finish | N/A; Ground | Town Street; picker | Solid, walkable Ground | Verified | Original vector concept | Darker road contrasts with sidewalk while preserving visible character edges. | `scripts/stage/scenery/stage_surface_renderer.gd` | Town Street starter load and runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
|
||||
### Reusable Scenery artwork
|
||||
|
||||
@@ -151,17 +151,17 @@ Each item below is a `.prop` vector artwork asset offered through Scenery. Its S
|
||||
|
||||
| Stable ID | Class / final format | Tags / default layer | Starter use | Behavior / collision | Status | Source / rights | Visual acceptance | Final location / definition | Validation evidence |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `art_city_skyline` | Vector `.prop` cutout | Buildings; Far | Town Street ×1 | Inert; none | Integrated | Original vector art | Long, muted overlapping building silhouette reads as distant and leaves cloud sky visible. | `content/props/art_city_skyline-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user zoom check pending. |
|
||||
| `art_storefront` | Vector `.prop` cutout | Buildings; Near | Town Street ×1 or more | Inert; none | Integrated | Original vector art | Colorful, readable shop front contrasts with skyline; repeat use does not look like one flat strip. | `content/props/art_storefront-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user zoom/repeat check pending. |
|
||||
| `art_town_house` | Vector `.prop` cutout | Buildings; Near | Town Street ×1 or more | Inert; none | Integrated | Original vector art | House silhouette and palette differ clearly from storefront at normal zoom. | `content/props/art_town_house-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user zoom check pending. |
|
||||
| `art_tree` | Vector `.prop` cutout | Nature; Near | Town Street ×2 or more | Inert; none | Integrated | Original vector art; user image used as inspiration for v2 | Friendly, readable crown/trunk; repeated copies tolerate size and position variation. | `content/props/art_tree-v2.prop` | Revised v2 tree inspected in Town Street and repair view: `tests/phase19_visual_town_street.png`, `tests/phase19_visual_finishes_and_repair.png`; user zoom/repeat check pending. |
|
||||
| `art_window_frame` | Vector `.prop` cutout | Walls, Buildings; Near | Living Room ×1 | Inert; none | Integrated | Original vector art | Frame is transparent at its center and aligns over the wall-panel gap to reveal actual Sky. | `content/props/art_window_frame-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; save/reopen suite passed; user window alignment check pending. |
|
||||
| `art_fireplace_mantel` | Vector `.prop` cutout | Walls, Objects; Near | Living Room ×1 | Inert; none | Integrated | Original vector art | Fireplace and mantel read clearly as decoration without suggesting this asset itself blocks movement. | `content/props/art_fireplace_mantel-v2.prop` | Revised v2 fireplace inspected in Living Room: `tests/phase19_visual_living_room.png`; user zoom check pending. |
|
||||
| `art_wall_clock` | Vector `.prop` cutout | Walls, Objects; Near | Living Room ×1 | Inert; none | Integrated | Original vector art | Clock reads at room scale without tiny illegible markings. | `content/props/art_wall_clock-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user zoom check pending. |
|
||||
| `art_bookshelf` | Vector `.prop` cutout | Objects, Walls; Near | Living Room ×1 | Inert; none | Integrated | Original vector art | Shelf, books, and plant details remain legible without dense tracing. | `content/props/art_bookshelf-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user zoom check pending. |
|
||||
| `art_framed_picture` | Vector `.prop` cutout | Objects, Walls; Near | Living Room ×1 or more | Inert; none | Integrated | Original vector art | Clear frame and image contrast on green paint; reuse can vary size/position. | `content/props/art_framed_picture-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user reuse/zoom check pending. |
|
||||
| `art_potted_plant` | Vector `.prop` cutout | Nature, Objects; Near | Living Room ×1 | Inert; none | Integrated | Original vector art | Leaf and pot shapes remain distinct from wall and furniture. | `content/props/art_potted_plant-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user zoom check pending. |
|
||||
| `art_rug` | Vector `.prop` cutout | Objects; On the floor | Living Room ×1 | Inert; none | Integrated | Original vector art | Visible over Wood Ground and below furniture/feet; border survives zoom. | `content/props/art_rug-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; starter runtime suite passed; user depth/zoom check pending. |
|
||||
| `art_city_skyline` | Vector `.prop` cutout | Buildings; Far | Town Street ×1 | Inert; none | Verified | Original vector art | Long, muted overlapping building silhouette reads as distant and leaves cloud sky visible. | `content/props/art_city_skyline-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_storefront` | Vector `.prop` cutout | Buildings; Near | Town Street ×1 or more | Inert; none | Verified | Original vector art | Colorful, readable shop front contrasts with skyline; repeat use does not look like one flat strip. | `content/props/art_storefront-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_town_house` | Vector `.prop` cutout | Buildings; Near | Town Street ×1 or more | Inert; none | Verified | Original vector art | House silhouette and palette differ clearly from storefront at normal zoom. | `content/props/art_town_house-v1.prop` | Town Street production Stage render inspected: `tests/phase19_visual_town_street.png`; save/reopen suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_tree` | Vector `.prop` cutout | Nature; Near | Town Street ×2 or more | Inert; none | Verified | Original vector art; user image used as inspiration for v2 | Friendly, readable crown/trunk; repeated copies tolerate size and position variation. | `content/props/art_tree-v2.prop` | Revised v2 tree inspected in Town Street and repair view: `tests/phase19_visual_town_street.png`, `tests/phase19_visual_finishes_and_repair.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_window_frame` | Vector `.prop` cutout | Walls, Buildings; Near | Living Room ×1 | Inert; none | Verified | Original vector art | Frame is transparent at its center and aligns over the wall-panel gap to reveal actual Sky. | `content/props/art_window_frame-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; save/reopen suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_fireplace_mantel` | Vector `.prop` cutout | Walls, Objects; Near | Living Room ×1 | Inert; none | Verified | Original vector art | Fireplace and mantel read clearly as decoration without suggesting this asset itself blocks movement. | `content/props/art_fireplace_mantel-v2.prop` | Revised v2 fireplace inspected in Living Room: `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_wall_clock` | Vector `.prop` cutout | Walls, Objects; Near | Living Room ×1 | Inert; none | Verified | Original vector art | Clock reads at room scale without tiny illegible markings. | `content/props/art_wall_clock-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_bookshelf` | Vector `.prop` cutout | Objects, Walls; Near | Living Room ×1 | Inert; none | Verified | Original vector art | Shelf, books, and plant details remain legible without dense tracing. | `content/props/art_bookshelf-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_framed_picture` | Vector `.prop` cutout | Objects, Walls; Near | Living Room ×1 or more | Inert; none | Verified | Original vector art | Clear frame and image contrast on green paint; reuse can vary size/position. | `content/props/art_framed_picture-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_potted_plant` | Vector `.prop` cutout | Nature, Objects; Near | Living Room ×1 | Inert; none | Verified | Original vector art | Leaf and pot shapes remain distinct from wall and furniture. | `content/props/art_potted_plant-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; user/editor visual verification completed 2026-10-22. |
|
||||
| `art_rug` | Vector `.prop` cutout | Objects; On the floor | Living Room ×1 | Inert; none | Verified | Original vector art | Visible over Wood Ground and below furniture/feet; border survives zoom. | `content/props/art_rug-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; starter runtime suite passed; user/editor visual verification completed 2026-10-22. |
|
||||
|
||||
### Interactive furniture Props
|
||||
|
||||
@@ -169,9 +169,9 @@ These are `.prop` assets placed through Props in Living Room. Their authored sha
|
||||
|
||||
| Stable ID | Class / final format | Tags / default layer | Starter use | Behavior / collision | Status | Source / rights | Visual acceptance | Final location / definition | Validation evidence |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `prop_couch` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, appropriately character-blocking; valid collision | Integrated | Original vector art | Comfortable couch silhouette sized for stickman and room; no implied Sit action. | `content/props/prop_couch-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user collision/scale check pending. |
|
||||
| `prop_armchair` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, appropriately character-blocking; valid collision | Integrated | Original vector art | Distinct chair silhouette, matching couch style and character scale. | `content/props/prop_armchair-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user collision/scale check pending. |
|
||||
| `prop_coffee_table` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, can support small props; valid collision | Integrated | Original vector art | Tabletop/support reads clearly and leaves rug visible. | `content/props/prop_coffee_table-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user support/scale check pending. |
|
||||
| `prop_couch` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, appropriately character-blocking; valid collision | Verified | Original vector art | Comfortable couch silhouette sized for stickman and room; no implied Sit action. | `content/props/prop_couch-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user/editor visual verification completed 2026-10-22. |
|
||||
| `prop_armchair` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, appropriately character-blocking; valid collision | Verified | Original vector art | Distinct chair silhouette, matching couch style and character scale. | `content/props/prop_armchair-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user/editor visual verification completed 2026-10-22. |
|
||||
| `prop_coffee_table` | Vector `.prop` furniture | Objects; Prop depth per placement | Living Room ×1 | Still, can support small props; valid collision | Verified | Original vector art | Tabletop/support reads clearly and leaves rug visible. | `content/props/prop_coffee_table-v1.prop` | Living Room production render inspected: `tests/phase19_visual_living_room.png`; prop integration regression available; user/editor visual verification completed 2026-10-22. |
|
||||
|
||||
Existing built-in crate and ball artwork may be used in Town Street if an interactive object benefits that starter; no new interactive town asset is required to achieve its visual reference. The artist should establish a coherent cartoon style and author each asset at its intended Stage size relative to the standard approximately 940-world-unit standing stickman. Infer ordinary dimensions from a recognizable object's name and use, and record approximate intended bounds in stickman units (height, plus width when useful) with a scale-check preview; ask only when the intended use makes size genuinely ambiguous. Far art is quieter than Near art; outlines and silhouettes must remain clear at selector-thumbnail size and normal Stage zoom. Avoid excessive vector point counts, hard-to-read microdetail, and busy contrast behind character faces or speech bubbles. The source/rights field must distinguish original art, licensed sources, and generated raster concepts. Reference art is not automatically licensed final content.
|
||||
|
||||
@@ -198,9 +198,9 @@ Existing built-in crate and ball artwork may be used in Town Street if an intera
|
||||
- The two starters require the manifest content as real deliverables. Missing art, inconsistent scale, or raster-only placeholders would leave a child with a visually incomplete feature even if the controls work.
|
||||
- Stage-relative authoring scale must account for both tall and wide props/artwork without forcing every asset to one generic height. The stickman comparison guides intent; the artist records an approximate scale, and the Prop Editor provides reversible correction. Loading does not normalize existing assets. Deliberately saving revised geometry over a live reference updates that drawing in referencing scenes; the user chose to retain the existing Save workflow because scenes are not yet in production.
|
||||
|
||||
## Remaining questions for the spec-pipeline
|
||||
## Specification decisions recorded
|
||||
|
||||
These are design and architecture tasks for the specification stage, not unresolved user choices about Phase 19's product goal:
|
||||
The following design questions were resolved in the linked UI/UX and architecture specifications and verified with the integrated Phase 19 behavior:
|
||||
|
||||
1. What exact UI presents Backgrounds, Artwork tags, placement layer, Ground finish, and Edit Scenery without crowding the existing Stage palette? Define keyboard, touch, narrow-viewport, dismissal, and cancellation behavior using the established Stage panel patterns; Stage Undo remains out of scope for Phase 19 and is tracked separately.
|
||||
2. How will an adaptive Sky fill unbounded camera views while keeping its gradient fixed and its details gently camera-aware as described in the addendum, and how will wall and Ground finishes keep repeatable pattern scale and alignment through resizing, drag painting, and zoom?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Starter Scene Composition
|
||||
|
||||
> **Status:** Accepted product design for a focused Phase 19 starter-scene polish. This is a design handoff to the spec-pipeline, not a final technical specification.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19. The user verified both starter compositions in the editor; the Phase 19 scenery suite passes **706 checks with 0 failures**. The detailed composition decisions below remain the historical product and implementation brief.
|
||||
|
||||
## Goal and audience
|
||||
|
||||
@@ -46,18 +46,18 @@ The pre-implementation design review found the outdoor artwork bases roughly **1
|
||||
|
||||
## Current project behavior and references
|
||||
|
||||
The Phase 19 [scenery product plan](phase_19_scenery_backgrounds_surface_finishes.md) defines the starter choices, editable scenery layers, and the distinction between visual Scenery and walkable Ground. The [Background Ground and Wall Color brief](phase_19_background_ground_and_wall_color.md) defines decorative Background ground and editable wall finishes. The [Phase 19 handoff](phase_19_handoff.md) says overall user/editor verification is still pending.
|
||||
The Phase 19 [scenery product plan](phase_19_scenery_backgrounds_surface_finishes.md) defines the starter choices, editable scenery layers, and the distinction between visual Scenery and walkable Ground. The [Background Ground and Wall Color brief](phase_19_background_ground_and_wall_color.md) defines decorative Background ground and editable wall finishes. The user/editor verification recorded in the [Phase 19 handoff](phase_19_handoff.md) is complete. The later [Plain Background brief](phase_19_plain_background.md) adds Plain Background and renames the former neutral-Sky Blank Scene choice **Open Sky**.
|
||||
|
||||
The accepted visual direction is detailed in the [starter-scene UI/UX specification](../specs/phase_19_starter_scene_composition_ui_ux.md). The implementation contract is in the [approved starter-scene architecture specification](../specs/phase_19_starter_scene_composition.md).
|
||||
|
||||
Before this composition pass, the [Town Street scene](../../content/stages/starters/town_street.scene) used one Far skyline, separate Near trees/buildings, and short Sidewalk/Asphalt Ground runs. The [Living Room scene](../../content/stages/starters/living_room.scene) used three wall panels, seven Wood Ground pieces, separate decorations, and three Props. Both saved zoom 0.5. The implementation now promotes these starters to current scene format v1.6, extends required surfaces to the approved envelope, and frames starter previews from the saved camera. See the focused [architecture specification](../specs/phase_19_starter_scene_composition.md) for exact placements and verification results. The existing artwork and furniture remain in [content/props](../../content/props/), with each placement independently editable.
|
||||
|
||||
## Verification status and remaining checks
|
||||
## Verification status
|
||||
|
||||
- The focused composition suite passes 515 assertions, including tile bounds, seam navigation, a physical PLAY step from sidewalk to road, and Living Room floor support.
|
||||
- A render-capable capture route is not available in this run: the bounded GUI capture exited 134 without producing an image. Visual checks remain for the opening frames, pan endpoints, tile/background joins, starter cards, narrower viewport, and zoom-in framing.
|
||||
- The broader scenery suite still exits 1 on nine Sky-preview/gallery and Scenery-edit interaction assertions; Town/Living Room surface assertions pass and those nine failures were also present before the latest tile and curb changes.
|
||||
- The focused composition suite passed 515 assertions, including tile bounds, seam navigation, a physical PLAY step from sidewalk to road, and Living Room floor support.
|
||||
- The earlier broad-suite run recorded nine failures; that result was superseded by the 2026-10-22 retest, which passed the Phase 19 scenery suite with 706 checks and 0 failures.
|
||||
- The user completed editor visual verification of Town Street and Living Room, including the composition behaviors and surfaces covered here.
|
||||
|
||||
## Implementation status
|
||||
|
||||
The initial focused composition test passed 177 assertions, but user visual review found clouds visible through the Town Street below the skyline and rejected the oversized scaled walkable blocks. The revision adds opaque Grass Background ground, ordinary-size tile rows, and a one-tile Asphalt extension at each end so characters can reach the road. The focused composition suite now passes 515 assertions, including routing across tile seams and a grounded PLAY drop onto Asphalt. Rendered review and user/editor checks remain pending. The [architecture specification](../specs/phase_19_starter_scene_composition.md) records the measurements and test limitations.
|
||||
The initial focused composition test passed 177 assertions, but user visual review found clouds visible through the Town Street below the skyline and rejected the oversized scaled walkable blocks. The revision adds opaque Grass Background ground, ordinary-size tile rows, and an Asphalt extension so characters can reach the road. The focused composition suite passed 515 assertions, including routing across tile seams and a grounded PLAY drop onto Asphalt. The user has since completed the editor visual review; current Phase 19 test and verification results are summarized above and in the [handoff](phase_19_handoff.md).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 follow-up — Background ground and wall color: architecture specification
|
||||
|
||||
> **Status:** Proposed for final sign-off. Implements the accepted [product brief](../plans/phase_19_background_ground_and_wall_color.md) and [UI/UX specification](phase_19_background_ground_and_wall_color_ui_ux.md). This is a Stage follow-up; the existing walkable Ground, Prop physics, and artwork formats retain their contracts.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19; the scenery suite passes **706 checks with 0 failures**. Implements the [product brief](../plans/phase_19_background_ground_and_wall_color.md) and [UI/UX specification](phase_19_background_ground_and_wall_color_ui_ux.md). This Stage follow-up preserves existing walkable Ground, Prop physics, and artwork contracts.
|
||||
|
||||
## Architectural decision
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 follow-up — Background ground and wall color: UI/UX specification
|
||||
|
||||
> **Status:** UI/UX handoff for the accepted [Background Ground and Wall Color brief](../plans/phase_19_background_ground_and_wall_color.md). This extends the [approved Phase 19 Scenery UI specification](phase_19_scenery_backgrounds_ui_ux.md); its existing Sky, artwork, Edit Scenery, and placement behavior still applies.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19; the scenery suite passes **706 checks with 0 failures**. This extends the [Phase 19 Scenery UI specification](phase_19_scenery_backgrounds_ui_ux.md); its Sky, artwork, Edit Scenery, and placement behavior remain applicable.
|
||||
|
||||
## Child promise
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Plain Background: architecture specification
|
||||
|
||||
> **Status:** Approved design; implementation under way. This specification implements the [accepted product brief](../plans/phase_19_plain_background.md) and [UI/UX specification](phase_19_plain_background_ui_ux.md). The color-choices and custom-picker PNGs reflect the current-color chip as the sole custom-picker entry and the simple **Preview** label; the solid fill and exact labels in the UI/UX specification govern implementation.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified. The user explicitly verified Plain Background save/reopen; the Phase 19 scenery suite passes 706 checks with 0 failures. This specification implements the [Plain Background brief](../plans/phase_19_plain_background.md) and [UI/UX specification](phase_19_plain_background_ui_ux.md). The color-choices and custom-picker PNGs reflect the current-color chip as the sole custom-picker entry and the simple **Preview** label; the solid fill and exact labels in the UI/UX specification govern implementation.
|
||||
|
||||
## Scope and decisions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Plain Background: UI/UX specification
|
||||
|
||||
> **Status:** UI/UX direction revised per user feedback from the user-approved PNG mockups. The current-color chip is the sole entry to the custom picker; there is no separate **More colors** button. The default color is approved as warm off-white `#F5EFE0`; the color swatches and sample views must show a flat fill.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19. The current-color chip is the sole entry to the custom picker; there is no separate **More colors** button. The default color is warm off-white `#F5EFE0`; the color swatches and sample views show a flat fill.
|
||||
>
|
||||
> **Design references:** [Phase 19 Plain Background brief](../plans/phase_19_plain_background.md), [approved PNG mockups](../plans/assets/phase_19_plain_background/), [Phase 19 Scenery UI/UX specification](phase_19_scenery_backgrounds_ui_ux.md), and [Child-Facing Dialog Design Principles](dialog_design_principles.md).
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Scenery, backgrounds, and surface finishes: architecture and implementation specification
|
||||
|
||||
> **Status:** Original Phase 19 scenery architecture and the approved Stage-relative sizing amendment are integrated; automated and render-capable checks pass. The camera-aware Sky architecture addendum below is specified for user sign-off and is not yet implemented. This specification follows the [accepted product brief](../plans/phase_19_scenery_backgrounds_surface_finishes.md), the [approved UI/UX specification](phase_19_scenery_backgrounds_ui_ux.md), and the [Stage panel UI system](stage_panel_ui_system.md). Full Phase 19 user/editor verification remains pending. The camera-aware Sky addendum supersedes the original static-detail statements in this document.
|
||||
> **Status (2026-10-22):** Phase 19 architecture is implemented and user/editor verified. The user completed the integrated visual and interaction checks; `tests/test_phase19_scenery.gd` passes **706 checks with 0 failures**. This specification follows the [verified product plan](../plans/phase_19_scenery_backgrounds_surface_finishes.md), the [UI/UX specification](phase_19_scenery_backgrounds_ui_ux.md), and the [Stage panel UI system](stage_panel_ui_system.md). The camera-aware Sky addendum supersedes the original static-detail statements below.
|
||||
|
||||
## Decisions and scope
|
||||
|
||||
@@ -241,7 +241,7 @@ Each row names a child path and a repeatable observation. Automated checks may c
|
||||
| Move a referenced `.prop` aside, reopen, repair selected missing artwork; cancel once then confirm | One neutral marker remains at saved position/depth, summary appears once, ordinary EDIT targets are not stolen, cancel keeps path/dirty state, and confirmed repair changes only that placement. Missing footprint/no-footprint group resize rules and PLAY marker presentation hold. Restore source and reopen to confirm live-reference visual update. |
|
||||
| Select each Sky, pan/zoom, PLAY/stop, reopen | The fixed gradient fills the screen without an edge or flicker; details follow the bounded response in the [Sky addendum](#phase-19-addition-camera-aware-sky-details). Foreground pixel colors are unchanged by Sky choice. Layer order remains Sky/wall/Far/Near/Ground/floor/actors through camera movement, simulation, and reload; ghosts/handles/capture bars disappear in PLAY. |
|
||||
|
||||
Visual acceptance requires opening the affected scene in a render-capable Godot GUI, capturing the named chooser, normal/zoomed Stage, missing-art, group-preview, **Prop Editor sizing guide at Small/Big and narrow width, active single-piece handles/capture bar**, and PLAY states, and inspecting the pixels. Record capture location, scene/state, and observation. Interactive acceptance requires exercising the actual controls and input events, including RMB/Esc/touch cancellation, button sizing, grid-aligned move, commit on release, and a late release after cancellation. If GUI or input automation is unavailable after an attempted route, name the unverified outcomes and hand the user a focused reproducible check; a headless parse or screenshot file alone is insufficient. Phase 19 user/editor verification remains open until the child checks the integrated behavior.
|
||||
Visual acceptance requires opening the affected scene in a render-capable Godot GUI, capturing the named chooser, normal/zoomed Stage, missing-art, group-preview, **Prop Editor sizing guide at Small/Big and narrow width, active single-piece handles/capture bar**, and PLAY states, and inspecting the pixels. Record capture location, scene/state, and observation. Interactive acceptance requires exercising the actual controls and input events, including RMB/Esc/touch cancellation, button sizing, grid-aligned move, commit on release, and a late release after cancellation. If GUI or input automation is unavailable after an attempted route, name the unverified outcomes and hand the user a focused reproducible check; a headless parse or screenshot file alone is insufficient. **Closeout:** the user reports completing the Phase 19 editor verification on 2026-10-22; the automated scenery suite passes 706 checks. Plain Background save/reopen was also explicitly verified by the user.
|
||||
|
||||
## Trade-offs and future work
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Scenery, backgrounds, and surface finishes: UI/UX specification
|
||||
|
||||
> **Status:** The original Phase 19 UI/UX is approved and implemented, including the Stage-relative asset-sizing addition (2026-10-16). The accepted camera-aware Sky behavior is being specified as a focused Phase 19 addition. Based on the [accepted product brief](../plans/phase_19_scenery_backgrounds_surface_finishes.md). Full Phase 19 user/editor verification remains pending.
|
||||
> **Status (2026-10-22):** Phase 19 UI/UX is implemented and user/editor verified. The user completed the integrated visual and interaction checks; the scenery suite passes **706 checks with 0 failures**. Camera-aware Sky and Plain Background are later Phase 19 additions; see the [Plain Background plan](../plans/phase_19_plain_background.md) and [UI/UX specification](phase_19_plain_background_ui_ux.md). Based on the [Phase 19 product plan](../plans/phase_19_scenery_backgrounds_surface_finishes.md).
|
||||
>
|
||||
> **Decision:** Use a responsive Scenery chooser followed by canvas tools. Placement stays active for repeated copies. Right-click exits placement. Scenery artwork keeps live `.prop` references, with a visible, repairable placeholder if a referenced file cannot be found. The Phase 19 addition standardizes new artwork around a standing-stickman size guide and adds single-placement Scenery resizing; direct single-piece transforms commit on release, while the existing group preview keeps its Keep/Cancel boundary. Phase 19 does not add Undo; Stage Undo is deferred to its own future phase and should be recorded in tech debt during architecture planning.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 addition — selected Scenery artwork depth
|
||||
|
||||
> **Status:** Implemented and approved; focused automated and render-capable checks pass. Full Phase 19 user/editor verification remains open. **Scope:** Edit Scenery's in-stage card for exactly one selected `StageSceneryArtwork`, including a missing-artwork marker. This is an addition to Phase 19. It does not change placement, wall panels, physical Props, or the scene schema.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19; the full scenery suite passes 706 checks with 0 failures. **Scope:** Edit Scenery's in-stage card for exactly one selected `StageSceneryArtwork`, including a missing-artwork marker. This is an addition to Phase 19. It does not change placement, wall panels, physical Props, or the scene schema.
|
||||
|
||||
## Child-facing behavior
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Starter Scene Composition: Architecture and Implementation Specification
|
||||
|
||||
> **Status:** Implemented; focused behavior verification passed. Rendered-pixel and user/editor verification remain pending because the available Godot capture route exited before producing an image. The user requested an opaque Town Street Background ground layer and rows of ordinary-size walkable Ground tiles in both starters instead of oversized terrain blocks.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified. The user verified the Town Street and Living Room compositions in the editor. The Phase 19 scenery suite passes **706 checks with 0 failures**; see the [Phase 19 handoff](../plans/phase_19_handoff.md). The user-requested opaque Town Street Background ground layer and ordinary-size walkable Ground tiles are included.
|
||||
>
|
||||
> **Approvals:** Everyday Storybook direction approved; architecture defaults approved: **1,280×720 logical-pixel reference viewport (16:9)**, saved zoom **0.5**, horizontal pan guarantee **±1,000 world units**, and **100 world units** of end margin.
|
||||
>
|
||||
@@ -140,13 +140,13 @@ Phase 2 must inspect rendered captures from a render-capable Godot Stage at open
|
||||
- The initial pass promoted both snapshots to v1.6 and aligned visible bases, but used oversized scaled walkable blocks and omitted Town Background ground. The user identified those issues; that surface implementation was superseded by the tile/backdrop revision below.
|
||||
- `StageStarterCardPreview` now derives a square crop from the saved camera position and zoom. At zoom 0.5, it frames a 1,440 × 1,440 world-unit opening crop in the existing 220 × 220 usable preview area.
|
||||
- `/Applications/Godot.app/Contents/MacOS/Godot --path /Users/ryan/Projects/stickman --headless --rendering-method gl_compatibility --script res://tests/test_phase19_starter_scene_composition.gd` passed **515 assertions** on Godot 4.7.1. It covers production scene loading, save/reopen, surface bounds, window opening, preview transforms, base contacts, PLAY support, navigation across each tile row, and sidewalk-to-road access. Town Asphalt has 27 scale-1 tiles spanning 5,184 units; a PLAY actor moved from x=2,280 to x=2,500 and landed grounded on the road at feet y=15.31. The navigation query from center to the opposite walk line follows the exposed right curb through `(2400, -4)` and `(2400, 12)`. Measured contact gaps at the saved zoom were 0.0 logical px for Town artwork; 0.0–0.123 px for Living Room floor artwork; and 0.025–0.225 px for the three Props. These are production-loaded geometry measurements, not pixel samples from rendered captures.
|
||||
- `/Applications/Godot.app/Contents/MacOS/Godot --path /Users/ryan/Projects/stickman --headless --rendering-method gl_compatibility --script res://tests/test_phase19_scenery.gd` exits 1. The Town/Living starter surface, count, scale, bounds, seam, pan-margin, and camera assertions pass; the nine remaining failures concern the Sky/surface preview card count, a wall-erasure document-change signal, and Edit Scenery erase/Cancel capture-bar behavior. These same failures were present before the latest tile and curb changes. The environment also reports a Stage autosave warning during that run.
|
||||
- An earlier Phase 19 scenery-suite run exited 1 with nine failures in Sky/surface previews and Edit Scenery eraser/capture-bar behavior. This historical result was superseded by the 2026-10-22 retest: **706 checks passed, 0 failed**.
|
||||
- Rendered-pixel inspection could not be completed here: a bounded GUI capture attempt exited 134 without output or an image, and an earlier headless compatibility capture produced no image before it was stopped after 30 seconds. The default headless Vulkan test path also crashed in shader translation. The focused compatibility test exited successfully; the environment printed a macOS CA-certificate lookup warning.
|
||||
- Remaining user/editor checks: opening frames, ±1,000 camera pan endpoints, the Town background and tile appearance, both starter cards, a narrower viewport, dramatic zoom-in, and rendered seams/Sky inspection. User-supplied Town Street imagery exposed the missing background; this revised pass still needs a fresh rendered visual review. Automated geometry and PLAY checks cover support across tile seams and the curb step.
|
||||
- User/editor checks listed here are complete as of 2026-10-22. The user verified the starter compositions and the remaining Phase 19 visual/interaction scenarios; see the [Phase 19 handoff](../plans/phase_19_handoff.md) for the consolidated record.
|
||||
|
||||
### User visual follow-up (2026-10-21)
|
||||
|
||||
The user's Town Street capture showed Sky clouds visible below the skyline because the initial implementation omitted Background ground. The user also rejected the oversized scaled TerrainBlocks used for walkable surfaces and requested left-to-right rows of ordinary Ground tiles in both templates. The current revision adds opaque non-walkable Grass Background ground behind Town Street and uses adjacent scale-1 tiles for Sidewalk, Asphalt, and Living Room Wood. Sidewalk uses 25 tiles; Asphalt uses 27, extending one tile beyond each sidewalk end so the road is physically reachable. The focused production-path test passed 515 assertions, including seam routing and a grounded PLAY step onto Asphalt. Fresh rendered review and user/editor checks remain pending.
|
||||
The user's Town Street capture showed Sky clouds visible below the skyline because the initial implementation omitted Background ground. The user also rejected the oversized scaled TerrainBlocks used for walkable surfaces and requested left-to-right rows of ordinary Ground tiles in both templates. The current revision adds opaque non-walkable Grass Background ground behind Town Street and uses adjacent scale-1 tiles for Sidewalk, Asphalt, and Living Room Wood. Sidewalk uses 25 tiles; Asphalt uses 27, extending one tile beyond each sidewalk end so the road is physically reachable. The focused production-path test passed 515 assertions, including seam routing and a grounded PLAY drop onto Asphalt. The final user/editor verification and 706-check Phase 19 suite result supersede this earlier pending status.
|
||||
|
||||
## Trade-offs and deferred work
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Phase 19 — Starter Scene Composition UI/UX Specification
|
||||
|
||||
> **Status:** Approved UI/UX specification. The separate architecture specification is approved for implementation. This defines scene presentation, not new controls.
|
||||
> **Status (2026-10-22):** Implemented and user/editor verified as part of Phase 19; the scenery suite passes **706 checks with 0 failures**. This specification records scene presentation and reuses the existing controls.
|
||||
>
|
||||
> **Source:** [Phase 19 — Starter Scene Composition brief](../plans/phase_19_starter_scene_composition.md).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user