- 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.
> **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.
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 Phase19 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.
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.
- [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.
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.
> **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.
# 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?
> **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).
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.