Files
stickman/docs/plans/phase_19_scenery_backgrounds_surface_finishes.md
T
ryan 0b1dda2e2f Add Phase 19 Starter Scene Composition UI/UX Specification and Tests
- Introduced a new UI/UX specification document for the Phase 19 Starter Scene Composition, detailing user paths, composition rules for Town Street and Living Room, camera framing, and observable acceptance outcomes.
- Implemented a visual capture test for different sky states in the sandbox stage, ensuring proper rendering and visual consistency.
- Created a comprehensive test suite for the Phase 19 starter scene composition, validating scene loading, geometry, navigation, and interaction behaviors for both Town Street and Living Room.
- Added checks for visual alignment, object placements, and scene transitions to ensure adherence to the new UI/UX specifications.
2026-10-21 17:46:58 -04:00

39 KiB
Raw Blame History

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 for continuation context and verification entry points. 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.

Goal and audience

Give children a quick way to make a Stage feel like a place: a town street, a living room, or their own setting. They should be able to choose an appealing sky, dress a scene with inert vector artwork, paint visual wall and Ground finishes, and then direct characters among ordinary props. The art remains crisp when the Stage camera pans or zooms.

The audience is a child using the Sandbox Stage's EDIT, DIRECT, and PLAY modes. The central distinction should be easy to learn: Scenery looks and stays put; Props can be part of the action; Ground is where stickmen walk. An artwork asset can be used in more than one role; the Stage placement choice gives that copy its behavior.

Desired child outcome and story value

  • Start with Blank Scene, Town Street, or Living Room, then change any ordinary part of the starter instead of being locked into one background picture.
  • Build a layered outdoor set: cloudy sky, distant skyline, nearer shops and trees, sidewalk, and road. Characters remain readable and can move on the Ground.
  • Build an indoor set: painted wall, window, wall decorations, wood floor, rug, and furniture. A child can change the Sky seen through the starter's window without recoloring the room.
  • Use Far, Near, and On the floor scenery to express distance and staging without giving scenery collision or interactions. A child may draw a tree once and place it as either Scenery or a Prop in different scenes.
  • Save, reopen, revise, and replay the scene without losing the selected finishes, sky, artwork, or depth choices.

The feature helps children establish story mood and place before directing dialogue and action. Sky and set dressing are visual choices. Functional doors, upper floors, and whole-scene color filters remain separate story mechanics.

Child flow and feedback

Start a scene

File → New shows three large illustrated choices: Blank Scene, Town Street, and Living Room. The existing unsaved-work flow protects the current scene before any choice replaces it. Cancel returns to the existing work. A starter opens as a new unsaved scene with an editable suggested name; it does not insert itself into another scene or create a locked template instance.

New Scene choice Initial composition Child can change
Blank Scene Empty Stage with the existing neutral background and no placed Ground. Sky, Scenery, Ground, characters, and Props from scratch.
Town Street Cloudy Day Sky; muted skyline in Far; colorful storefront, house, and tree artwork in Near; walkable Sidewalk and Asphalt Ground. Sky, skyline strip, individual near artwork, Ground pieces and finishes, plus any added cast or Props. A skyline strip is one artwork placement, not independently editable buildings inside it.
Living Room Clear Day Sky; green painted wall panels around a window opening; Near window frame, fireplace/mantel, clock, shelf/books, picture, and plant; Wood Ground; an On the floor rug; couch, armchair, and coffee-table Props. Every panel, artwork placement, rug, Ground piece, and furniture Prop. The wall panels leave an intentional gap beneath the window frame, so the selected Sky is actually visible. Moving or resizing the window and wall pieces may require adjusting more than one piece; this phase has no automatic window-cutting tool.

The starters demonstrate what children can make with the normal tools. Furniture in Living Room starts still with sensible blocking/support behavior where appropriate; the starter does not imply that characters can sit. A short cue may point children to Scenery after a starter opens, without covering the Stage.

Open Scenery

The Stage palette gains Scenery. Its chooser has Backgrounds and Artwork:

Scenery
[ Backgrounds ]  [ Artwork ]

Backgrounds: [ Sky ] [ Wall panel ]
Artwork: [ All artwork ] [ Nature ] [ Buildings ] [ Walls ]
         [ Roads & paths ] [ Objects ]

The Artwork choices use large previews. The tag filters describe the drawing, not what it can do. The built-in, optional, multi-select tag IDs are nature, buildings, walls, roads, and objects; the child-facing labels above can be refined without changing the stored meaning. One drawing may appear in several categories. All artwork includes old and untagged work; Unsorted can appear when there is untagged artwork to show. The same tags can filter the Props browser. The Props and Scenery entry points remain visibly distinct so children do not have to turn off interaction settings for every background item.

The existing vector Prop Editor and .prop assets supply user-created artwork. Phase 19 should make that art discoverable from Scenery, including artwork that has no usable collision hull. There is no separate Scenery Editor or .scenery format in this phase. A later child-facing name such as Artwork Editor may better describe its broadened use; the UI/UX specification should decide how much prop-only material and attachment controls are shown during scenery authoring.

Choose a Sky

Backgrounds → Sky shows four designed thumbnail cards: Clear Day, Cloudy Day, Sunset, and Starry Night. One tap changes the scene's Sky, and choosing another card changes it again. A Sky fills every camera view without an exposed edge. Its gradient stays fixed to the screen while its clouds, sun, moon, and stars respond gently to camera pan and zoom as described in the camera-aware Sky details addendum. Each preset should be a considered composition rather than a flat color with an obvious repeated icon.

Changing Sky changes only the sky. It never tints or recolors Ground, wall panels, scenery artwork, characters, or Props. Sky is selected through its chooser, not by clicking a giant rectangle on the Stage.

Camera-aware Sky details addendum

Goal and audience. A child making an outdoor scene should see a Sky that feels distant without making their Ground and stickman appear to float among oversized clouds. This applies when a child chooses any of the four Phase 19 Sky presets, frames a shot in EDIT or DIRECT, and watches it in PLAY.

Child flow. The child chooses a Sky as before, places walkable Ground and a stickman, then pans or zooms the Stage camera. The Sky gradient continues to fill the entire view. Clouds and celestial details shift gently with camera movement and change size modestly with camera zoom, so the composition feels connected to the shot while staying distant. The child does not set a motion mode, slider, or per-scene option. Switching presets applies that preset's tuned response automatically. The same view is reproduced after saving and reopening the scene at its saved camera framing.

Visual behavior. Each preset keeps its distinctive color and motifs, with detail size and placement tuned to leave clear space around characters and Ground at ordinary framing. Camera response is bounded and smooth: no visible Sky edge, abrupt jump, distracting sweep, or cloud that grows to dominate the action during normal pan and zoom. The gradient remains screen-filling and fixed; only Sky details respond. EDIT, DIRECT, and PLAY use the same camera-relative composition. The chosen Sky remains decorative and never changes the color, collision, or movement of any world object.

Horizon and Ground. The Sky does not draw a horizon or a ground line. A child who wants land behind the playable area uses the existing world-anchored Background ground scenery surface, placed behind walkable Ground. This keeps a visible landscape edge aligned with the scene as the camera moves. Softer contours, automatic edge blending, and easier horizon construction remain the separate backdrop horizon and edge treatment idea; this addendum does not define or ship those tools.

Success criteria. At ordinary and representative close/wide camera views, a character on Ground reads as being in front of the Sky rather than inside a cloud. Panning and zooming each preset gives a perceptible but subtle response without revealing an edge or obscuring the action. The same camera framing reproduces the same Sky composition after a mode change, PLAY/stop cycle, or save/reopen, and the composition adapts coherently to a resized viewport. A Background ground surface and walkable Ground stay aligned with each other while Sky details respond behind them. Sky chooser previews still identify the four looks and do not imply that the child must configure camera behavior.

Scope and handoff. This is a Phase 19 visual-behavior addition for the four existing Sky presets. It preserves the existing Sky choice and screen-filling gradient. It excludes autonomous cloud/weather animation, a child-facing motion control, a Sky-ground horizon, multi-layer parallax scenery, and changes to terrain physics or Background ground placement. UI/UX and architecture should resolve how much pan/zoom response is comfortable for each preset and how the view stays composed at viewport extremes. Relevant current references are scripts/stage/scenery/stage_sky_view.gd, scripts/editors/stage/sandbox_stage.gd, scripts/stage/scenery/stage_background_ground.gd, the Phase 19 Sky UI/UX specification, and the Background Ground and Wall Color plan. Those earlier specifications describe the original static behavior and need a focused follow-up before implementation.

Draw a wall panel

Backgrounds → Wall panel offers Paint, Brick, and Wood finishes with a color choice. The child chooses a finish, drags from one corner to the other, sees a translucent preview of the intended size and pattern, and releases to place a finite rectangular panel. Snap may help edges meet. A selected panel can later be moved, resized, recolored, restyled, or erased; changing one panel does not silently alter others.

The child-facing explanation should make its role clear: “Looks like a wall. Stickmen can pass through.” A wall panel is world-anchored backdrop art. It does not block a stickman, support a prop, move under physics, respond to Use, or trigger rules. A solid wall belongs to terrain or a later structural feature. When a panel grows, bricks or boards retain a sensible world-scale motif rather than stretching a small image.

Place and edit artwork

The child opens Artwork, chooses a tag such as Nature, taps a drawing such as Tree, sees a ghost over the Stage, and taps to place it. Each Scenery placement offers a simple illustrated depth choice: Far, Near (default), or On the floor. Far supports distant silhouettes such as a skyline. Near supports storefronts, trees, window frames, and wall decor. On the floor supports rugs and markings that sit over finished Ground but under action. A child can change the depth later. Artwork placed through Scenery stays fixed and inert even if the same .prop can also be placed through Props as an interactive object.

The authoritative visual order is:

Sky
  → wall panels
  → Far scenery artwork
  → Near scenery artwork
  → walkable Ground
  → On the floor scenery artwork
  → characters and interactive Props (retaining their existing relative depth choices)

Every Scenery tier is visual only. Its depth never grants collision, support, pickup, Use spots, or event participation. An On the floor rug is visible above a wood Ground finish without covering furniture or the character's feet.

Edit Scenery exposes the scenery pieces for selection. A clear outline and large handles let the child move and resize art, change its depth, or erase it; a wall panel also exposes Finish and Color. Broad panels must not steal clicks or box selections from characters, Ground, and Props in ordinary EDIT. Within Edit Scenery, a cutout in front of a panel should be easy to choose, and the panel must still be reachable through its exposed area, edge, or an overlapping-items choice. A selected wall panel also offers Erase wall area: drag a rectangle to remove that area from one or more wall panels while keeping the surrounding pieces and their finish. This is a manual visual cutout; it does not create glass, collision, or doorway behavior. Each released cut is immediate; Cancel/Escape/right-click discard only the current drag, and Stage Undo remains deferred to its own future phase. Sky remains in its own chooser. Placement and group-resize previews have visible Cancel actions. A single-piece move or resize previews during its direct-manipulation gesture and commits on release; while the gesture is active it can be canceled through the capture bar (touch), Escape, or right-click. There is no second Keep confirmation. Leaving Edit Scenery returns to ordinary selection. Selection and focus cannot rely on color alone.

Finish Ground and play

The existing Ground palette entry gains a visual finish chooser. Picture swatches include Paint, Brick, Wood, Grass, Dirt, Sidewalk, and Asphalt. Paint, Brick, and Wood share recognizable names/previews with Wall panel where applicable; Ground-only outdoor finishes need not appear in the wall picker. Tap for one Ground piece or use the existing drag-paint gesture for a run. Ghosts show the selected look. A new choice affects new placements only. Selecting an existing Ground piece lets the child deliberately change that piece's finish. Adjacent painted pieces should read as one continuous surface, especially wood floors, sidewalks, and roads.

Ground remains solid and walkable. This phase gives finishes only to Ground; it does not redesign or restyle Ramp and Step. Children can use Sidewalk and Asphalt Ground in Town Street and Wood Ground in Living Room. A Scenery wall panel or road marking never becomes a movement surface.

In PLAY, edit handles and placement ghosts disappear. Scenery stays put; Sky details respond gently to camera pan and zoom under the same rules as EDIT and DIRECT. Characters move on Ground; Props follow their own saved behavior settings. Stopping PLAY restores the authored arrangement for another take. Story playback and camera movement should preserve the intended visual layer order and the child's view of the action.

Included scope and exclusions

Included in Phase 19: one chosen scene-wide Sky with a screen-filling fixed gradient and gentle automatic camera-aware details; four initial Sky designs; finite editable wall panels with manually erasable rectangular openings; inert .prop Scenery placements with Far, Near, and On the floor depth; built-in multi-select browse tags; Ground-only visual finishes; editable Blank/Town Street/Living Room New Scene choices; Scenery-safe selection; scene save/reopen and legacy defaults; built-in vector content listed below; and a stage-relative size-authoring guide/workflow shared by Props and Scenery artwork, with single Scenery artwork placements resizable independently in Edit Scenery. The new authoring convention does not silently rescale existing assets or saved placements.

Excluded from Phase 19: a new Scenery Editor or .scenery file; child-authored repeatable finish patterns or reusable whole-Sky themes; autonomous weather animation, multi-layer parallax scenery, or directed Sky transitions; whole-scene filters such as sepia or black-and-white; functional doors or scene travel; automatic window cutouts or glass; Ramp/Step finishes or terrain redesign; inserting a starter into an existing scene; user-authored reusable set templates; and functional stairs or multi-level travel. Multi-level walkable scenes and whole-scene visual filters are separate future ideas, not Phase 19 work.

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.

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.

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.

Repeatable vector surface finishes

These are finish definitions and previews, not ordinary Props. Ground finishes change appearance without changing Ground's walkability; wall finishes stay inert.

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.

Reusable Scenery artwork

Each item below is a .prop vector artwork asset offered through Scenery. Its Scenery placement has no collision or interaction even if the artwork is also available through Props. Final visual-only art must not require an invented solid collision shape merely to enter the Scenery catalog.

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.

Interactive furniture Props

These are .prop assets placed through Props in Living Room. Their authored shape and placement roles must support the stated behavior. The same artwork may still be offered as inert Scenery when deliberately placed through Scenery.

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.

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.

Success criteria

  1. A child can create Town Street from New Scene, recognize the intended Sky/skyline/shops/trees/sidewalk/road composition at the default view, move or remove any placed piece, save it, reopen it, and keep the same look and behavior.
  2. A child can create Living Room from New Scene, see the actual selected Sky through its window gap, change the Sky without tinting the room, restyle the wall or Wood Ground, move the rug and furniture independently, and save/reopen the revised set.
  3. A child can place one .prop drawing through Scenery and through Props and understand that the two copies behave differently. The Scenery copy never blocks, supports, moves, is picked up or used, or triggers an event in PLAY.
  4. Far skyline, Near buildings/trees, Ground, On the floor rug, and Props preserve their intended order through pan, zoom, PLAY, stop, and reload. Character and speech readability survives the four Sky styles and common finishes.
  5. Ordinary EDIT selection still reaches foreground characters, Props, and Ground over broad panels. Edit Scenery makes every cutout and panel discoverable and correctable; placement and an active resize gesture can be canceled before commit, while a single-piece resize commits on release and group resize retains Keep/Cancel. Labels, icons, outlines, and focus reveal state without depending on color alone.
  6. Wall panel and Ground finish choices preview correctly; wall patterns do not stretch as panels resize, and adjacent Ground pieces do not show distracting pattern restarts. Changing a palette finish does not repaint existing pieces; a selected piece can be changed deliberately.
  7. Older .scene documents retain their prior neutral background and Ground appearance when opened. Older untagged .prop assets remain visible in All artwork, and a missing referenced Scenery asset yields a visible recovery cue rather than silently removing the child's placement.
  8. Each chosen Sky keeps its gradient screen-filling while its details respond gently and predictably to camera pan and zoom in EDIT, DIRECT, and PLAY, as specified in the camera-aware Sky details addendum. The action remains readable, no edge appears, and the same framing survives save/reopen.
  9. Every required manifest item reaches Verified, with source/rights and final location recorded. A raster concept alone cannot satisfy a final vector content requirement.
  10. New and revised .prop artwork is authored at its intended Stage size relative to the standard approximately 940-world-unit standing stickman, avoiding a mandatory resize on ordinary placement. The Prop Editor's Size for Stage guide is visible over artwork and above a floor/contact cue. Loading performs no automatic normalization; deliberate asset overwrites retain the usual live-reference behavior and existing Save workflow, without new copy/version prompts. Individual Scenery pieces resize independently, preserve proportions, and save/reopen at the committed scale.

Current project context, risks, and dependencies

  • The Stage currently has a World, camera, optional world-space grid, registry-driven palette, Ground/Ramp/Step terrain, Props, and stickmen. Ground is a solid TerrainBlock; its drag painter creates independent blocks. Phase 19 must preserve Ground walkability and avoid treating Scenery panels as terrain.
  • The current .scene save boundary is StageSceneIO with mapping in StageSceneAdapter. It stores terrain, Props, stickmen, and areas but no Sky, wall panels, or Scenery placements. The accepted design requires additive saved appearance and placement data with legacy defaults; the architect will decide schema and migration details. Persist artwork references through the project's ContentPaths conventions.
  • The .prop format and Prop Editor already author multi-shape vector art. PropLibrary currently rejects custom artwork without valid closed collision geometry. Visual-only Scenery must accept legitimate artwork without fake physics. The architect and UI/UX lead should resolve how the same art catalog serves both placement routes and how old untagged art stays discoverable.
  • Stage selection currently uses World-object bounds and an overlapping-object chooser. Large wall panels and floor art can otherwise catch almost every click or box selection. A dedicated, forgiving Scenery edit flow and predictable hit order are product requirements. The approved Stage panel UI system supplies the in-stage inspector visual contract; adapt it for selected Scenery/Ground controls where it fits.
  • Finite panels, tiled vector finishes, and detailed Sky motifs must stay crisp and performant across Stage zoom and camera pan. Ground pieces need aligned world-scale patterns. The Town Street and Living Room references should guide composition and mood, not be treated as final licensed assets.
  • 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

These are design and architecture tasks for the specification stage, not unresolved user choices about Phase 19's product goal:

  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?
  3. What saved scene and optional .prop tag fields, validation, migration defaults, missing-art recovery, and starter creation flow preserve existing documents and the same artwork's independent Scenery/Prop placements?
  4. How will selected panels, cutouts, rugs, Ground, and ordinary objects remain reachable where bounds overlap, including the window gap and a room-sized wall?
  5. Which asset production workflow turns concepts into final vector content, records provenance, checks collision only for interactive Props, and advances each manifest row through integration and verification?

The live feature backlog tracks the separate follow-up work, including multi-level walkable scenes and whole-scene visual filters.