Shadow
Step 6 · Shadow plants your sprites on the floor instead of leaving them to float. Each sprite is grounded two ways at once: a ground shadow cast on the floor beneath it, and base shading that darkens the sprite's own lower edge where it meets the ground. Both are computed in your browser from each sprite's silhouette — no AI — and stored as live parameters that never alter your art. Two rules run the panel: shape is per target (contacts, mode, and size, tuned per shadow group or per sprite) while style is global (blend, strength, steps, and texel, set once for the whole scene, because overlapping shadows flatten into one plate). You are done when every sprite reads as standing on the ground; Continue to Repixelize then carries the shadows to Step 7 · Harmonize.
Costs. Nothing on this step spends credits. Every shadow is drawn locally from each sprite's silhouette, so tuning contacts, switching shapes, restyling the scene, and the live preview are all free — as often as you like. This is one of the few steps with no AI in it at all.

The preview and its toolbar
The left pane is a live whole-scene composite with shadows baked in. It re-renders as you drag — an updating chip marks a recompute, and the render is size-capped so drags stay smooth. Before an image loads it reads No scene to preview yet.; while it builds the first frame, Rendering preview…. Selecting a target draws its bounds: a group shows an indigo union box with a faint box around each member, a sprite shows just its own box.
- Scroll to zoom · drag empty space to pan — the standard view gesture; no effect on output.
{NN}%— the zoom readout; click to reset to 100% and recenter (tooltipReset zoom).White bg— a preview-only aid that composites on plain white instead of your background or the checkerboard, so shadows read clearly. It changes no export.
The first time you enter, shadow groups auto-seed from your Mask Sprites groups — each top-level mask group becomes one collapsed shadow group, and any standalone sprite starts in Ungrouped with no shadow. Only approved sprites appear, the same gate as Reconstruct & View.
Note. Seeding runs at most once per project session, and only when the tree is empty — after that the groups are yours to edit. A sprite missing here is unapproved; approve it in Step 5 · Mask Sprites and it returns.
Shadow groups
The Shadow groups card lists every approved sprite as a two-level tree: named groups on top, an Ungrouped drop zone below, with a {n} grp · {m} solo counter and a caret to collapse the tree. Every sprite in a group shares that group's shape; an ungrouped sprite carries its own shadow — marked with a small indigo dot — or none.

Membership is drag-and-drop plus multi-select:
New group— creates an empty group namedShadow group {n}with its name field open, ready to rename and drag sprites into.- Drag one sprite onto another — forms a new group from both (or your whole selection); each sprite's individual shadow gives way to the shared one.
- Drag a sprite onto a group header — joins that group and adopts its shadow.
- Drag a sprite into
Ungrouped— lifts it to standalone, seeded with a copy of its old group's shadow. - Ctrl/Cmd-click or Shift-click a row — builds an amber multi-selection (Shift takes a visible range). A bar reads
{n} selectedwithNew group,Ungroup, and anX; clicking any group drops the selection there, and Esc clears it.
Each group header carries its own controls, and every member row has a lift-out button:
| Control | What it does |
|---|---|
| caret | Collapse a group to stacked member thumbnails plus a count, or expand it to show member rows. |
| pencil | Rename this shadow group — inline rename; Enter, Escape, or blur commits. |
| count badge | The number of approved members in the group. |
| trash | Disband this shadow group — deletes it; members fall back to Ungrouped with no shadow. |
| ungroup (member row) | Lift out of the group to give it its own shadow, seeded from the group's. |
Careful. Groups and individual shadows are mutually exclusive. Dropping a sprite into a group discards any individual shadow it had; lift it back out to give it its own again. An empty group is allowed and stays visible (empty — drag sprites in); when every sprite is grouped, the Ungrouped zone reads every sprite is in a group.
Shadow settings
The Shadow settings card edits whatever is selected; its title shows · Group: {name} or · {sprite}. With nothing selected it reads Select a group or a sprite above to edit its shadow. A grouped member reads Editing the whole {group} group — every member shares this shadow. with a Detach button to break that one sprite out. A standalone sprite with no shadow reads No shadow yet. with an Add a shadow button; once it has its own shadow, a trash icon appears in the card header (Remove this sprite's shadow) that deletes just that individual shadow and returns the row to No shadow yet. Everything below is the shape half of the step, tuned per target.
Contacts
The Contacts section (where the sprite meets the floor) tunes the contact detector every shadow shape is built on. On the preview, the contact line is drawn as a colored gizmo: green is kept at full weight, amber is partial weight, and red dashed is a floating part the gate rejected — a belly, an eave, a canopy.
Show contacts on the preview— toggles the contact-line gizmo overlay.Floor band ε— how close to the sprite's lowest row still counts as touching (shown as a fraction like0.08). Wider treats more of the base as ground contact.Keep · touches within— the lower gate: a column whose bottom sits within this fraction of the base height is a full-weight contact.Reject · floating beyond— the upper gate: anything higher than this above the base is rejected as floating.

Tip. Watch the preview while you drag Keep or Reject — an amber band and a red dashed line flash between the two thresholds and fade about a second and a half after you stop, so you see exactly what the gate keeps versus drops. Reject must stay above Keep; the renderer holds it at least a hair higher, so pushing it below does nothing.
Ground shadow
The Ground shadow section (on the floor, under the sprite) has an on/off switch in its header. Off, it reads Off — nothing is drawn on the floor under this target.; switching it back on restores the last shape you used for this target rather than resetting. When on, pick a shape and tune its geometry.
Blob·Per-foot·Fan— the shape.Blobis one soft ellipse under the whole footprint;Per-footpools one shadow per detected contact (per foot, per tower leg);Fansweeps a directional fan from the contact line along the light.Size— overall ground-shadow scale,0.40×to4.00×.Lean with the light— shearsBlobandPer-footby the light angle for a directional cast. It is hidden forFan, which always leans.Light angle— the light direction,0°–180°, with a small arrow that rotates to match. It appears only whenFanis selected orLean with the lightis on.Fan spread— the fan's opening angle,5°–180°(Fanonly).Vertical offset— nudges the shadow up or down off the contact line,-40to+40.
Per-foot and Fan both read from the contact line, so fixing the green line in Contacts fixes both shapes at once. Opacity and posterize levels are not here — Strength and Steps live in Style — all shadows, because the whole scene renders one union plate.

Base shading
The Base shading section (on the sprite, where it meets the ground) paints self-occlusion onto the sprite's own lower edge, clipped to its silhouette. It has its own on/off switch — off reads Off — the sprite keeps its original colours down to the base. It is independent of the ground shadow: a sprite can have base shading with no floor shadow, or the reverse.
Rise— how far up the sprite the shading climbs, shown as a percent.Only where it touches (drop floating edges)— gates the shading to where the sprite actually meets the ground, dropping floating edges. Off, the whole lower edge is shaded.
Style — all shadows
The Style — all shadows card sets one look for every shadow in the scene — ground shadows and base shading, across every group and every sprite. Any edit here writes through to all of them, because the renderer merges everything into a single posterized union plate; where shadows cross, the strongest setting wins and transparencies never stack. A two-column grid pairs the Ground and Base knobs.

Blend onto the scene— how shadows recolor what is beneath them:Tint — darker colour of the scene,Multiply — darken, keep hue,Color-burn — deep / dramatic, orNormal — flat ink (best on dark).Tint saturation— boosts the tint's saturation,1.00×–2.80×(shown only when the blend isTint).Strength— shadow opacity,0to1, set independently under theGroundandBasecolumns.Steps— posterize levels,1(flat) to6, per column.Hue— a tint hue shift,-60°to+60°, per column (shown only forTint).Texel size— the pixelation block size for the shadow ink,1px–8px.Pixelate— snaps the shadow to the texel grid for a pixel-art look; off is smooth.Dither— adds ordered dithering at the posterize boundaries.
Tip. A new shadow seeds its style from your scene: a pixel-art project starts pixelated and dithered, a soft-art project starts smooth with full levels and no texel blocks. You cannot give two shadows different blends, strengths, or steps — style is global on purpose, since a merged plate could not honor per-group values. Only shape and contacts differ per target.
Continue to Repixelize
Nothing here is destructive: shadows stay live parameters until they bake into the composite, so a slider just re-renders. They ride along automatically — the Step 8 · Reconstruct & View diorama and the flattened 2D export show them, and the layered PSD bakes each sprite's base shading into its layer while inserting the ground-shadow union as a multiply layer. There is no apply or bake button and nothing to undo. Continue to Repixelize advances to Step 7 · Harmonize — the button keeps its old wording, but Harmonize is what it opens.
Note. There is no 2D-versus-isometric toggle on this panel — ground shadows render flat here. The isometric projection belongs to the Step 8 · Reconstruct & View diorama, not this step.