fusionSetup { "backgroundNode": "Background_Canvas", "background": "#ffffff", "outputNode": "MediaOut1", "input": "Merge_device-context", "localFrames": [ 0, 240 ], "timelineFps": { "numerator": 60, "denominator": 1 }, "pixelAspect": 1, "layerOrder": "Listed ordered Over merges. Child tree is composited before its parent transform.", "notAnImportFile": true, "documentation": { "retainedManual": "Resolve-21.pdf / chapter120 Transform, printed pages2929-2931; chapter108 masks. Read from retained official documentation, not a claim of installed-version validation.", "transform": "Center positions the image, Pivot is the rotation/scaling axis, Size scales, positive Angle is counterclockwise, Canvas edges default transparent." }, "instructions": [ "Local x/y are pixels from the top-left of the parent, not the composition. All keys use the same native local frame f. For absolute source time use sourceStart+f, and for nominal seconds multiply by fpsDenominator/fpsNumerator. These are not measured master PTS.", "Use full 1920x1080 transparent domains for transforms, retaining needed offscreen material until the final canvas clip. For the phone, any material clipped below the domain is never translated back into view in this recipe. Do not reduce each layer domain to its visible bounding box before parenting.", "For zero-rotation local origin(ox,oy), sx=scale*scaleX and sy=scale*scaleY: bx=x+ox-sx*ox, by=y+oy-sy*oy. Output pixels=(bx+sx*inputX,by+sy*inputY). Full-frame Fusion centered Pivot=(0.5,0.5) then uses CenterX=bx/1920+sx/2; CenterY=1-by/1080-sy/2. Use independent X/Y Size if scales differ. All authored rotations are zero; Angle sign would invert for CSS clockwise rotation.", "For a local rectangle center use ((x+w/2)/1920,1-(y+h/2)/1080), Width=w/1920, Height=h/1080. For rounded corners preserve the radius in pixel geometry; reconstruct a Bezier rounded rectangle rather than treating the Fusion Corner Radius knob as pixels. Every SVG path/viewBox and native icon path is preserved in the guide.", "Left-key hold means the left value persists strictly before the next key, and the right value begins exactly at that key. Smooth means u*u*(3-2*u), not Resolve default Auto or the older cubic Bezier(.16,1,.3,1). Bake controls.csv values as native-frame keys when an analytic expression is inconvenient.", "Masks change alpha before compositing. overflow:hidden plus radius clips descendants to the rounded rectangle; a radius alone only shapes the background of a group and is not an extra child clip. Keep the browser/screen/gallery clips in their local parent coordinate system.", "CSS rect borders lie inside their stated box. Native fallback uses an outer rounded mask minus an inset rounded mask of border thickness; do not expand the box with a centered outline. Whole-group opacity is applied once after child Over merges.", "Keep premultiplied RGBA consistent for Over. If a color operation needs straight alpha, unpremultiply then premultiply immediately around it. No arbitrary opacity compensation, Screen blend or black backing. The original SVG radial/linear gradients use local alpha stops.", "The free prompt shadow is a separate black rectangle with alpha0.07 and CSS blur24px. Fusion Gaussian radius is not assumed equal to CSS blur; compare that one material at full resolution. Other geometry remains sharp and motion blur is disabled.", "Geist text uses explicit line breaks and listed pixel boxes. Resolve Text+ font size/baseline and SVG gradient appearance need actual application calibration. Do not claim identical rasterization from a numerical sampler pass. Use held StyledText strings for the exact character prefix schedule if Write On counts differently.", "Use no optical flow, dynamic zoom, retiming, transition handles or synthesized audio. No extra frames precede or follow the source window. Final output is clipped to1920x1080, not scaled to fit it." ] } fusionNodes [ { "layerId": "free-composer", "nodeId": "Layer_free-composer", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/0", "mergeIndex": 0, "backgroundInput": "Background_Canvas", "foregroundInput": "Processed_free-composer", "output": "Merge_free-composer", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 0, "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ] }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "free-shadow", "free-plate", "free-request", "free-plus-disc", "free-plus", "free-send-disc", "free-send-arrow" ], "contentsInput": "Merge_free-send-arrow" }, { "layerId": "free-shadow", "nodeId": "Layer_free-shadow", "kind": "rect", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_free-composer", "foregroundInput": "Processed_free-shadow", "output": "Merge_free-shadow", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 628, "y": 420, "width": 828, "height": 236, "origin": [ 0, 0 ], "fill": "#000000", "radius": 42, "blur": 24, "opacity": 0.07 }, "alphaAndMasks": { "opacity": 0.07, "radiusPixels": 42, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 0.07 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "free-plate", "nodeId": "Layer_free-plate", "kind": "rect", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/1", "mergeIndex": 1, "backgroundInput": "Merge_free-shadow", "foregroundInput": "Processed_free-plate", "output": "Merge_free-plate", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 628, "y": 402, "width": 828, "height": 236, "origin": [ 0, 0 ], "fill": "$panel", "radius": 42 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 42, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "free-request", "nodeId": "Layer_free-request", "kind": "text", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/2", "mergeIndex": 2, "backgroundInput": "Merge_free-plate", "foregroundInput": "Processed_free-request", "output": "Merge_free-request", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 658, "y": 438, "width": 672, "height": 166, "origin": [ 0, 0 ], "slot": "prompt", "fontSize": 44, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Which tools suit my friend\nwho loves sketching\nold buildings?", "adaptation": "Which books suit my niece\nwho enjoys mapping\nquiet gardens?" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 44, "weight": 400, "lineHeightPixels": 55.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "free-plus-disc", "nodeId": "Layer_free-plus-disc", "kind": "ellipse", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/3", "mergeIndex": 3, "backgroundInput": "Merge_free-request", "foregroundInput": "Processed_free-plus-disc", "output": "Merge_free-plus-disc", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 478, "y": 526, "width": 116, "height": 116, "origin": [ 0, 0 ], "fill": "$panel" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "free-plus", "nodeId": "Layer_free-plus", "kind": "path", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/4", "mergeIndex": 4, "backgroundInput": "Merge_free-plus-disc", "foregroundInput": "Processed_free-plus", "output": "Merge_free-plus", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 510, "y": 558, "width": 52, "height": 52, "origin": [ 0, 0 ], "path": "M27 10H37V27H54V37H37V54H27V37H10V27H27Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "free-send-disc", "nodeId": "Layer_free-send-disc", "kind": "ellipse", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/5", "mergeIndex": 5, "backgroundInput": "Merge_free-plus", "foregroundInput": "Processed_free-send-disc", "output": "Merge_free-send-disc", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 1360, "y": 542, "width": 84, "height": 84, "origin": [ 0, 0 ], "fill": "$ink", "opacity": [ { "frame": 0, "value": 1, "easing": "hold" }, { "frame": 30, "value": 1, "easing": "linear" }, { "frame": 37, "value": 0.46, "easing": "hold" } ] }, "alphaAndMasks": { "opacity": [ { "frame": 0, "value": 1, "easing": "hold" }, { "frame": 30, "value": 1, "easing": "linear" }, { "frame": 37, "value": 0.46, "easing": "hold" } ], "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": [ { "frame": 0, "value": 1, "easing": "hold" }, { "frame": 30, "value": 1, "easing": "linear" }, { "frame": 37, "value": 0.46, "easing": "hold" } ] }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "free-send-arrow", "nodeId": "Layer_free-send-arrow", "kind": "path", "parentLayerId": "free-composer", "recipePointer": "/layers/0/children/6", "mergeIndex": 6, "backgroundInput": "Merge_free-send-disc", "foregroundInput": "Processed_free-send-arrow", "output": "Merge_free-send-arrow", "activeLocalFrames": [ 0, 38 ], "effectiveActiveLocalFrames": [ 0, 38 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 0, "end": 38, "x": 1379, "y": 561, "width": 46, "height": 46, "origin": [ 0, 0 ], "path": "M28 52V23L17 34L11 28L32 7L53 28L47 34L36 23V52Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "#ffffff" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "device-context", "nodeId": "Layer_device-context", "kind": "group", "parentLayerId": null, "recipePointer": "/layers/1", "mergeIndex": 1, "backgroundInput": "Merge_free-composer", "foregroundInput": "Processed_device-context", "output": "Merge_device-context", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 0, "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ] }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "context-background", "phone-rim", "screen-clip" ], "contentsInput": "Merge_screen-clip" }, { "layerId": "context-background", "nodeId": "Layer_context-background", "kind": "image", "parentLayerId": "device-context", "recipePointer": "/layers/1/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_device-context", "foregroundInput": "Processed_context-background", "output": "Merge_context-background", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 0, "y": 0, "width": 1920, "height": 1080, "origin": [ 0, 0 ], "slot": "contextArt", "fit": "contain" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Native vector subgroup reconstructed from svgConstruction", "Fit Transform", "Local Transform", "Over Merge" ], "assets": { "defaults": { "kind": "image", "path": "art/prompt-device-context/context-default.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector artwork authored for this kit. No source-film imagery, logos, tracing, embedded bitmap, remote resource or third-party photograph." }, "adaptation": { "kind": "image", "path": "art/prompt-device-context/context-adaptation.svg", "width": 1920, "height": 1080, "rights": "Original code-generated vector artwork authored for this kit. No source-film imagery, logos, tracing, embedded bitmap, remote resource or third-party photograph." } }, "fitRule": "Use min(boxWidth/SVGWidth, boxHeight/SVGHeight), center the resulting artwork in the box, preserve SVG viewBox and alpha. These supplied boxes match their assets; no photographic crop." }, { "layerId": "phone-rim", "nodeId": "Layer_phone-rim", "kind": "rect", "parentLayerId": "device-context", "recipePointer": "/layers/1/children/1", "mergeIndex": 1, "backgroundInput": "Merge_context-background", "foregroundInput": "Processed_phone-rim", "output": "Merge_phone-rim", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 650, "y": 64, "width": 620, "height": 1232, "origin": [ 0, 0 ], "fill": "$rim", "radius": 96 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 96, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "screen-clip", "nodeId": "Layer_screen-clip", "kind": "group", "parentLayerId": "device-context", "recipePointer": "/layers/1/children/2", "mergeIndex": 2, "backgroundInput": "Merge_phone-rim", "foregroundInput": "Processed_screen-clip", "output": "Merge_screen-clip", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 664, "y": 78, "width": 592, "height": 1204, "origin": [ 0, 0 ], "radius": 82, "overflow": "hidden" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 82, "overflow": "hidden", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "transparent", "childLayerIds": [ "screen-paper", "device-clock", "signal-bars", "battery-body", "battery-tip", "menu-chip", "menu-icon", "app-chip", "device-app-name", "utility-chip", "compose-icon", "utility-dot-one", "utility-dot-two", "utility-dot-three", "sent-request", "search-status", "streamed-answer" ], "contentsInput": "Merge_streamed-answer" }, { "layerId": "screen-paper", "nodeId": "Layer_screen-paper", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_screen-clip", "foregroundInput": "Processed_screen-paper", "output": "Merge_screen-paper", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 0, "y": 0, "width": 592, "height": 1204, "origin": [ 0, 0 ], "fill": "#fdfdfd", "radius": 82 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 82, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "device-clock", "nodeId": "Layer_device-clock", "kind": "text", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/1", "mergeIndex": 1, "backgroundInput": "Merge_screen-paper", "foregroundInput": "Processed_device-clock", "output": "Merge_device-clock", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 54, "y": 40, "width": 100, "height": 34, "origin": [ 0, 0 ], "slot": "clock", "fontSize": 24, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "11:30", "adaptation": "09:45" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 24, "weight": 400, "lineHeightPixels": 30.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "signal-bars", "nodeId": "Layer_signal-bars", "kind": "path", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/2", "mergeIndex": 2, "backgroundInput": "Merge_device-clock", "foregroundInput": "Processed_signal-bars", "output": "Merge_signal-bars", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 428, "y": 35, "width": 36, "height": 36, "origin": [ 0, 0 ], "path": "M4 43H12V58H4ZM18 33H26V58H18ZM32 22H40V58H32ZM46 10H54V58H46Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "battery-body", "nodeId": "Layer_battery-body", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/3", "mergeIndex": 3, "backgroundInput": "Merge_signal-bars", "foregroundInput": "Processed_battery-body", "output": "Merge_battery-body", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 510, "y": 48, "width": 33, "height": 15, "origin": [ 0, 0 ], "fill": "$ink", "radius": 4 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 4, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "battery-tip", "nodeId": "Layer_battery-tip", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/4", "mergeIndex": 4, "backgroundInput": "Merge_battery-body", "foregroundInput": "Processed_battery-tip", "output": "Merge_battery-tip", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 545, "y": 53, "width": 3, "height": 6, "origin": [ 0, 0 ], "fill": "$ink", "radius": 1 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 1, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "menu-chip", "nodeId": "Layer_menu-chip", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/5", "mergeIndex": 5, "backgroundInput": "Merge_battery-tip", "foregroundInput": "Processed_menu-chip", "output": "Merge_menu-chip", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 20, "y": 91, "width": 62, "height": 62, "origin": [ 0, 0 ], "fill": "$panel", "radius": 31 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 31, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "menu-icon", "nodeId": "Layer_menu-icon", "kind": "path", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/6", "mergeIndex": 6, "backgroundInput": "Merge_menu-chip", "foregroundInput": "Processed_menu-icon", "output": "Merge_menu-icon", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 35, "y": 105, "width": 34, "height": 34, "origin": [ 0, 0 ], "path": "M12 20H52V25H12ZM12 36H40V41H12Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "app-chip", "nodeId": "Layer_app-chip", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/7", "mergeIndex": 7, "backgroundInput": "Merge_menu-icon", "foregroundInput": "Processed_app-chip", "output": "Merge_app-chip", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 100, "y": 92, "width": 204, "height": 62, "origin": [ 0, 0 ], "fill": "$panel", "radius": 31 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 31, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "device-app-name", "nodeId": "Layer_device-app-name", "kind": "text", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/8", "mergeIndex": 8, "backgroundInput": "Merge_app-chip", "foregroundInput": "Processed_device-app-name", "output": "Merge_device-app-name", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 127, "y": 109, "width": 165, "height": 34, "origin": [ 0, 0 ], "slot": "appName", "fontSize": 24, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Field Notes", "adaptation": "Field Atlas" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 24, "weight": 400, "lineHeightPixels": 30.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "utility-chip", "nodeId": "Layer_utility-chip", "kind": "rect", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/9", "mergeIndex": 9, "backgroundInput": "Merge_device-app-name", "foregroundInput": "Processed_utility-chip", "output": "Merge_utility-chip", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 422, "y": 92, "width": 144, "height": 62, "origin": [ 0, 0 ], "fill": "$panel", "radius": 31 }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 31, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "compose-icon", "nodeId": "Layer_compose-icon", "kind": "path", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/10", "mergeIndex": 10, "backgroundInput": "Merge_utility-chip", "foregroundInput": "Processed_compose-icon", "output": "Merge_compose-icon", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 442, "y": 109, "width": 30, "height": 30, "origin": [ 0, 0 ], "path": "M12 22V52H44V35H39V47H17V22ZM24 34L27 24L49 2L59 12L37 34ZM31 26L35 30L51 14L47 10Z", "viewBox": [ 0, 0, 64, 64 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Polygon/Bezier fill using exact path/viewBox", "Local Transform", "Over Merge" ] }, { "layerId": "utility-dot-one", "nodeId": "Layer_utility-dot-one", "kind": "ellipse", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/11", "mergeIndex": 11, "backgroundInput": "Merge_compose-icon", "foregroundInput": "Processed_utility-dot-one", "output": "Merge_utility-dot-one", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 510, "y": 119, "width": 6, "height": 6, "origin": [ 0, 0 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "utility-dot-two", "nodeId": "Layer_utility-dot-two", "kind": "ellipse", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/12", "mergeIndex": 12, "backgroundInput": "Merge_utility-dot-one", "foregroundInput": "Processed_utility-dot-two", "output": "Merge_utility-dot-two", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 524, "y": 119, "width": 6, "height": 6, "origin": [ 0, 0 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "utility-dot-three", "nodeId": "Layer_utility-dot-three", "kind": "ellipse", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/13", "mergeIndex": 13, "backgroundInput": "Merge_utility-dot-two", "foregroundInput": "Processed_utility-dot-three", "output": "Merge_utility-dot-three", "activeLocalFrames": [ 38, 240 ], "effectiveActiveLocalFrames": [ 38, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 38, "end": 240, "x": 538, "y": 119, "width": 6, "height": 6, "origin": [ 0, 0 ], "fill": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Background with Rectangle/Ellipse mask", "Inside-border ring if stroke is present", "Blur if present", "Local Transform", "Over Merge" ] }, { "layerId": "sent-request", "nodeId": "Layer_sent-request", "kind": "group", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/14", "mergeIndex": 14, "backgroundInput": "Merge_utility-dot-three", "foregroundInput": "Processed_sent-request", "output": "Merge_sent-request", "activeLocalFrames": [ 43, 240 ], "effectiveActiveLocalFrames": [ 43, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 43, "end": 240, "x": 212, "y": [ { "frame": 43, "value": 664, "easing": "smooth" }, { "frame": 52, "value": 360, "easing": "smooth" }, { "frame": 66, "value": 206, "easing": "smooth" }, { "frame": 80, "value": 188, "easing": "hold" }, { "frame": 239, "value": 188, "easing": "hold" } ], "width": 350, "height": 134, "origin": [ 0, 0 ], "radius": 30, "overflow": "hidden", "fill": "$panel" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 30, "overflow": "hidden", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Transparent RGBA working domain", "Ordered child Merges", "Rounded Rectangle/Polygon alpha intersection if required", "Transform", "Group opacity", "Over Merge" ], "localFill": "$panel", "childLayerIds": [ "device-request" ], "contentsInput": "Merge_device-request" }, { "layerId": "device-request", "nodeId": "Layer_device-request", "kind": "text", "parentLayerId": "sent-request", "recipePointer": "/layers/1/children/2/children/14/children/0", "mergeIndex": 0, "backgroundInput": "Transparent_sent-request", "foregroundInput": "Processed_device-request", "output": "Merge_device-request", "activeLocalFrames": [ 43, 240 ], "effectiveActiveLocalFrames": [ 43, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 43, "end": 240, "x": 20, "y": 18, "width": 313, "height": 96, "origin": [ 0, 0 ], "slot": "prompt", "fontSize": 24, "lineHeight": 1.25, "weight": 400, "color": "$ink" }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Which tools suit my friend\nwho loves sketching\nold buildings?", "adaptation": "Which books suit my niece\nwho enjoys mapping\nquiet gardens?" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 24, "weight": 400, "lineHeightPixels": 30.0, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "search-status", "nodeId": "Layer_search-status", "kind": "text", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/15", "mergeIndex": 15, "backgroundInput": "Merge_sent-request", "foregroundInput": "Processed_search-status", "output": "Merge_search-status", "activeLocalFrames": [ 103, 152 ], "effectiveActiveLocalFrames": [ 103, 152 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 103, "end": 152, "x": 24, "y": 365, "width": 542, "height": 36, "origin": [ 0, 0 ], "slot": "status", "fontSize": 26, "lineHeight": 1.25, "weight": 400, "color": "$muted", "opacity": [ { "frame": 103, "value": 0.75, "easing": "linear" }, { "frame": 130, "value": 0.4, "easing": "linear" }, { "frame": 151, "value": 0.75, "easing": "hold" } ] }, "alphaAndMasks": { "opacity": [ { "frame": 103, "value": 0.75, "easing": "linear" }, { "frame": 130, "value": 0.4, "easing": "linear" }, { "frame": 151, "value": 0.75, "easing": "hold" } ], "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": [ { "frame": 103, "value": 0.75, "easing": "linear" }, { "frame": 130, "value": 0.4, "easing": "linear" }, { "frame": 151, "value": 0.75, "easing": "hold" } ] }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "Finding useful ideas", "adaptation": "Exploring a few options" }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 26, "weight": 400, "lineHeightPixels": 32.5, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } }, { "layerId": "streamed-answer", "nodeId": "Layer_streamed-answer", "kind": "text", "parentLayerId": "screen-clip", "recipePointer": "/layers/1/children/2/children/16", "mergeIndex": 16, "backgroundInput": "Merge_search-status", "foregroundInput": "Processed_streamed-answer", "output": "Merge_streamed-answer", "activeLocalFrames": [ 152, 240 ], "effectiveActiveLocalFrames": [ 152, 240 ], "frameConvention": "Global zero-based recipe clock, not frame minus layer start. Gates are half-open.", "controls": { "start": 152, "end": 240, "x": 24, "y": 365, "width": 542, "height": 650, "origin": [ 0, 0 ], "slot": "answer", "fontSize": 26, "lineHeight": 1.25, "weight": 400, "color": "$ink", "reveal": { "unit": "characters", "steps": [ { "frame": 152, "count": 0 }, { "frame": 154, "count": 4 }, { "frame": 156, "count": 8 }, { "frame": 158, "count": 12 }, { "frame": 160, "count": 16 }, { "frame": 162, "count": 20 }, { "frame": 164, "count": 24 }, { "frame": 166, "count": 28 }, { "frame": 168, "count": 32 }, { "frame": 170, "count": 36 }, { "frame": 172, "count": 40 }, { "frame": 174, "count": 44 }, { "frame": 176, "count": 48 }, { "frame": 178, "count": 52 }, { "frame": 180, "count": 56 }, { "frame": 182, "count": 60 }, { "frame": 184, "count": 64 }, { "frame": 186, "count": 68 }, { "frame": 188, "count": 72 }, { "frame": 190, "count": 76 }, { "frame": 192, "count": 80 }, { "frame": 194, "count": 84 }, { "frame": 196, "count": 88 }, { "frame": 198, "count": 92 }, { "frame": 200, "count": 96 }, { "frame": 202, "count": 100 }, { "frame": 204, "count": 104 }, { "frame": 206, "count": 108 }, { "frame": 208, "count": 112 }, { "frame": 210, "count": 116 }, { "frame": 212, "count": 120 }, { "frame": 214, "count": 124 }, { "frame": 216, "count": 128 }, { "frame": 218, "count": 132 }, { "frame": 220, "count": 136 }, { "frame": 222, "count": 140 }, { "frame": 224, "count": 144 }, { "frame": 226, "count": 148 }, { "frame": 228, "count": 152 }, { "frame": 230, "count": 156 }, { "frame": 232, "count": 160 }, { "frame": 234, "count": 164 }, { "frame": 236, "count": 168 }, { "frame": 238, "count": 172 } ] } }, "alphaAndMasks": { "opacity": 1, "radiusPixels": 0, "overflow": "visible", "clip": null, "order": "Draw or merge local content; apply rounded/inset alpha clipping when overflow is hidden; apply local blur if present, local transform and whole-layer opacity; then ordered Over into the parent." }, "defaultTransform": { "originPixels": [ 0, 0 ], "scale": 1, "scaleX": 1, "scaleY": 1, "rotation": 0, "opacity": 1 }, "tools": [ "Text+ in bundled Geist", "Set explicit newline layout", "Stepped StyledText or Write On gate when present", "Local Transform", "Over Merge" ], "content": { "defaults": "For a curious sketcher,\nbuild a compact kit with\na pocket book, two pencils,\nand a small water brush.\nChoose tools that travel well\nand leave room to explore.\nA simple street map can add\na new route for the next trip.", "adaptation": "For an eager map maker,\nchoose a small field book\nwith room for clear notes\nand a set of soft pencils.\nLook for nearby green spaces\nwith a few paths to compare.\nA light bag keeps the books\nclose at hand on a long walk." }, "font": { "family": "Geist", "file": "project/public/fonts/Geist.ttf", "pixels": 26, "weight": 400, "lineHeightPixels": 32.5, "letterSpacingPixels": 0, "fit": "No shrink or automatic wrapping. Text+ Size and baseline need actual installed-font calibration; the recipe pixel box is authoritative." } } ] svgConstruction { "art/prompt-device-context/context-default.svg": { "sha256": "55078cd539be2c5c1fbf2e3c8b1afbd770e31ae3b1fb96fe17e637866e1bdc17", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "radialGradient", "attributes": { "id": "blue", "cx": "0.15", "cy": "0.08", "r": "0.82" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#78bef0" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#78bef0", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "lilac", "cx": "0.54", "cy": "0.42", "r": "0.61" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#dacaf2" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#dacaf2", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "blush", "cx": "0.34", "cy": "1", "r": "0.78" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#f6c9d9" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#f6c9d9", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "#b4d6f4" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#blue)" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#lilac)" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#blush)" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." }, "art/prompt-device-context/context-adaptation.svg": { "sha256": "653faf1c4e557eba02151d886db0fd8dc5cb29b626aba3c499c00dc6ee2cb62f", "construction": { "element": "svg", "attributes": { "width": "1920", "height": "1080", "viewBox": "0 0 1920 1080" }, "children": [ { "element": "defs", "attributes": {}, "children": [ { "element": "radialGradient", "attributes": { "id": "blue", "cx": "0.15", "cy": "0.08", "r": "0.82" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#90c6c0" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#90c6c0", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "lilac", "cx": "0.54", "cy": "0.42", "r": "0.61" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#d5d1ed" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#d5d1ed", "stop-opacity": "0" }, "children": [] } ] }, { "element": "radialGradient", "attributes": { "id": "blush", "cx": "0.34", "cy": "1", "r": "0.78" }, "children": [ { "element": "stop", "attributes": { "offset": "0", "stop-color": "#efd9bb" }, "children": [] }, { "element": "stop", "attributes": { "offset": "1", "stop-color": "#efd9bb", "stop-opacity": "0" }, "children": [] } ] } ] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "#cbded8" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#blue)" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#lilac)" }, "children": [] }, { "element": "rect", "attributes": { "width": "1920", "height": "1080", "fill": "url(#blush)" }, "children": [] } ] }, "authorship": "Original parameterized SVG; no image source, trace or conversion.", "nativeRebuild": "Use each explicit SVG element as a separate filled/masked vector node. Gradient coordinates without units are objectBoundingBox; x right, y down. Carry stop-opacity through alpha, not a solid-color approximation." } } tracks [ { "layerId": "free-composer", "property": "x", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-composer", "property": "y", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-composer", "property": "width", "value": 1920, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-composer", "property": "height", "value": 1080, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "x", "value": 628, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "y", "value": 420, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "width", "value": 828, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "height", "value": 236, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "opacity", "value": 0.07, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "radius", "value": 42, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-shadow", "property": "blur", "value": 24, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plate", "property": "x", "value": 628, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plate", "property": "y", "value": 402, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plate", "property": "width", "value": 828, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plate", "property": "height", "value": 236, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plate", "property": "radius", "value": 42, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-request", "property": "x", "value": 658, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-request", "property": "y", "value": 438, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-request", "property": "width", "value": 672, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-request", "property": "height", "value": 166, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus-disc", "property": "x", "value": 478, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus-disc", "property": "y", "value": 526, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus-disc", "property": "width", "value": 116, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus-disc", "property": "height", "value": 116, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus", "property": "x", "value": 510, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus", "property": "y", "value": 558, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus", "property": "width", "value": 52, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-plus", "property": "height", "value": 52, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-disc", "property": "x", "value": 1360, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-disc", "property": "y", "value": 542, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-disc", "property": "width", "value": 84, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-disc", "property": "height", "value": 84, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-disc", "property": "opacity", "value": [ { "frame": 0, "value": 1, "easing": "hold" }, { "frame": 30, "value": 1, "easing": "linear" }, { "frame": 37, "value": 0.46, "easing": "hold" } ], "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-arrow", "property": "x", "value": 1379, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-arrow", "property": "y", "value": 561, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-arrow", "property": "width", "value": 46, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "free-send-arrow", "property": "height", "value": 46, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-context", "property": "x", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-context", "property": "y", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-context", "property": "width", "value": 1920, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-context", "property": "height", "value": 1080, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "context-background", "property": "x", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "context-background", "property": "y", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "context-background", "property": "width", "value": 1920, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "context-background", "property": "height", "value": 1080, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "phone-rim", "property": "x", "value": 650, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "phone-rim", "property": "y", "value": 64, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "phone-rim", "property": "width", "value": 620, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "phone-rim", "property": "height", "value": 1232, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "phone-rim", "property": "radius", "value": 96, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-clip", "property": "x", "value": 664, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-clip", "property": "y", "value": 78, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-clip", "property": "width", "value": 592, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-clip", "property": "height", "value": 1204, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-clip", "property": "radius", "value": 82, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-paper", "property": "x", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-paper", "property": "y", "value": 0, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-paper", "property": "width", "value": 592, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-paper", "property": "height", "value": 1204, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "screen-paper", "property": "radius", "value": 82, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-clock", "property": "x", "value": 54, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-clock", "property": "y", "value": 40, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-clock", "property": "width", "value": 100, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-clock", "property": "height", "value": 34, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "signal-bars", "property": "x", "value": 428, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "signal-bars", "property": "y", "value": 35, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "signal-bars", "property": "width", "value": 36, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "signal-bars", "property": "height", "value": 36, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-body", "property": "x", "value": 510, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-body", "property": "y", "value": 48, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-body", "property": "width", "value": 33, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-body", "property": "height", "value": 15, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-body", "property": "radius", "value": 4, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-tip", "property": "x", "value": 545, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-tip", "property": "y", "value": 53, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-tip", "property": "width", "value": 3, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-tip", "property": "height", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "battery-tip", "property": "radius", "value": 1, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-chip", "property": "x", "value": 20, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-chip", "property": "y", "value": 91, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-chip", "property": "width", "value": 62, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-chip", "property": "height", "value": 62, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-chip", "property": "radius", "value": 31, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-icon", "property": "x", "value": 35, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-icon", "property": "y", "value": 105, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-icon", "property": "width", "value": 34, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "menu-icon", "property": "height", "value": 34, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "app-chip", "property": "x", "value": 100, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "app-chip", "property": "y", "value": 92, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "app-chip", "property": "width", "value": 204, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "app-chip", "property": "height", "value": 62, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "app-chip", "property": "radius", "value": 31, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-app-name", "property": "x", "value": 127, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-app-name", "property": "y", "value": 109, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-app-name", "property": "width", "value": 165, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-app-name", "property": "height", "value": 34, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-chip", "property": "x", "value": 422, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-chip", "property": "y", "value": 92, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-chip", "property": "width", "value": 144, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-chip", "property": "height", "value": 62, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-chip", "property": "radius", "value": 31, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "compose-icon", "property": "x", "value": 442, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "compose-icon", "property": "y", "value": 109, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "compose-icon", "property": "width", "value": 30, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "compose-icon", "property": "height", "value": 30, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-one", "property": "x", "value": 510, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-one", "property": "y", "value": 119, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-one", "property": "width", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-one", "property": "height", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-two", "property": "x", "value": 524, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-two", "property": "y", "value": 119, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-two", "property": "width", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-two", "property": "height", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-three", "property": "x", "value": 538, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-three", "property": "y", "value": 119, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-three", "property": "width", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "utility-dot-three", "property": "height", "value": 6, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "sent-request", "property": "x", "value": 212, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "sent-request", "property": "y", "value": [ { "frame": 43, "value": 664, "easing": "smooth" }, { "frame": 52, "value": 360, "easing": "smooth" }, { "frame": 66, "value": 206, "easing": "smooth" }, { "frame": 80, "value": 188, "easing": "hold" }, { "frame": 239, "value": 188, "easing": "hold" } ], "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "sent-request", "property": "width", "value": 350, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "sent-request", "property": "height", "value": 134, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "sent-request", "property": "radius", "value": 30, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-request", "property": "x", "value": 20, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-request", "property": "y", "value": 18, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-request", "property": "width", "value": 313, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "device-request", "property": "height", "value": 96, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "search-status", "property": "x", "value": 24, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "search-status", "property": "y", "value": 365, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "search-status", "property": "width", "value": 542, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "search-status", "property": "height", "value": 36, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "search-status", "property": "opacity", "value": [ { "frame": 103, "value": 0.75, "easing": "linear" }, { "frame": 130, "value": 0.4, "easing": "linear" }, { "frame": 151, "value": 0.75, "easing": "hold" } ], "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "streamed-answer", "property": "x", "value": 24, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "streamed-answer", "property": "y", "value": 365, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "streamed-answer", "property": "width", "value": 542, "basis": "Chosen implementation control; source cut bounds are documented separately." }, { "layerId": "streamed-answer", "property": "height", "value": 650, "basis": "Chosen implementation control; source cut bounds are documented separately." } ] steps [ "Unpack core-publication-v08.zip, then active-assets.zip with overwrite enabled. The overlay installs this selected recipe and only its active SVGs. Do not fetch any legacy assets-001.zip.", "Verify recipe and every default/adaptation SVG with the unchanged handoff.py. Export native controls.csv rows before editing; local frame zero is the queued source start, not source frame zero.", "Build all native UI parts as individual rectangles, ellipses, paths and text layers. SVG files contain original vector materials only; no layer may reference source footage, screenshots or embedded raster data.", "In Fusion, create a 1920x1080, square-pixel composition at the exact recipe cadence, with local start zero. Keep the full listed node/parent order and one global clock; intersect every child gate with all ancestor gates.", "Use transparent RGBA subgroups. Multiply group alpha once after child compositing. Make overflow:hidden a true alpha intersection before the group transform, not a Transform effect mask that limits only the transform.", "Use Geist from the core with the exact pixel sizes, line heights and explicit newlines. Content length caps are not font measurements. Test both contents using the installed font; reject overflow rather than shrinking.", "Create free-composer on [0,38). Plate=(628,402,828,236), radius42; request=(658,438,672,166), font44, line55. Add its independent 24px blurred shadow at y420, plus circle and send circle. The send-disc alpha is 1 through30 then reaches0.46 at37.", "At38 cut the whole branch to device-context. Add the full-canvas original context SVG, phone-rim=(650,64,620,1232), radius96, then screen-clip=(664,78,592,1204), radius82. The phone extends below the canvas intentionally. No device zoom or fade substitutes for this cut.", "Within screen-clip, construct paper, clock, signal/battery, menu/app/utility chips and path icons from the node table. Keep them static. Hold the request absent for frames38..42; there are five frames in that blank interval.", "Create sent-request at x212,width350,height134,radius30 and gate [43,240). Animate only local y: 664@43,360@52,206@66,188@80,188@239. Each of the first three segments uses smoothstep, then hold. Its child device-request reuses the same prompt slot at (20,18,313,96), font24, line30.", "Keep search-status at (24,365,542,36), font26, gate [103,152), alpha0.75@103,0.4@130,0.75@151 with linear segments. Gate streamed-answer [152,240) at (24,365,542,650), font26, line32.5. Reveal 0 characters at152 and four more every two frames through172 characters at238; do not rebase to the layer start.", "The device and request hold their pose after80, but text continues arriving. The last frame is239 and the answer remains incomplete. Do not append a final answer hold or send action inside this source window." ] checkpoints [ { "localFrame": 0, "sourceFrame": 450, "expectation": "Free composer; complete shared request." }, { "localFrame": 30, "sourceFrame": 480, "expectation": "Send opacity still1; no context background." }, { "localFrame": 37, "sourceFrame": 487, "expectation": "Last free composer; send alpha0.46." }, { "localFrame": 38, "sourceFrame": 488, "expectation": "First device-only frame; no request yet." }, { "localFrame": 42, "sourceFrame": 492, "expectation": "Last blank-device frame." }, { "localFrame": 43, "sourceFrame": 493, "expectation": "Request gate opens at y664." }, { "localFrame": 52, "sourceFrame": 502, "expectation": "Request y360." }, { "localFrame": 66, "sourceFrame": 516, "expectation": "Request y206." }, { "localFrame": 80, "sourceFrame": 530, "expectation": "Request reaches held y188." }, { "localFrame": 102, "sourceFrame": 552, "expectation": "No status yet." }, { "localFrame": 103, "sourceFrame": 553, "expectation": "Status on; answer off." }, { "localFrame": 120, "sourceFrame": 570, "expectation": "Status active; device and message held." }, { "localFrame": 151, "sourceFrame": 601, "expectation": "Last status frame." }, { "localFrame": 152, "sourceFrame": 602, "expectation": "Status off; answer gate on with zero characters." }, { "localFrame": 180, "sourceFrame": 630, "expectation": "56 answer characters; not a finished response." }, { "localFrame": 220, "sourceFrame": 670, "expectation": "136 answer characters; device remains fixed." }, { "localFrame": 239, "sourceFrame": 689, "expectation": "172 answer characters; partial response, exclusive end240." } ] implementationDifferences [ "Default sketching advice and second-content mapping advice use the same nodes, timing, masks and shared prompt identity.", "Original unbranded phone, flat UI primitives and radial SVG washes replace source styling. No source asset is reused.", "Old ObjectContext adds an art panel and uses change=54, four empty output frames, settle=84 at its own output timing. This native-cadence recipe instead follows the observed cut at 38 and uses a chosen five-frame blank beat, with only the message moving.", "Answer reveal uses discrete character steps with uniform weight, unlike the source soft streamed emphasis. Font fit and actual motion require parent rendering." ] limitations [ "An original unbranded phone, different copy and discrete text reveal cannot claim the source's exact message morph, type shaping or soft streamed-answer emphasis. No fresh rendered comparison exists.", "No output render/encode, npm dependency installation, moving-source review, audio assessment, blind test or native Resolve execution was performed by this builder.", "Full native source masters were unavailable. Retained excerpts have960x540 pixels; 1920x1080 source dimensions and master hashes are inherited queue metadata.", "All historical source-quality status remains unresolved. Mechanical readiness does not approve material, typography, motion, source fidelity or production use.", "The core includes a licensed Geist font. This is SVG/code-only active imagery, not an assertion that the entire runtime contains no binary files.", "Only selected recipe and active SVG files belong in the overlay. No old asset pack, source master, private worker, dependency tree or critic output belongs in it.", "Text fit requires the actual loaded browser font; field length caps and numeric tracks alone cannot establish readability.", "Both content variants demonstrate one treatment, not two new examples. No shared counts, catalog entries or publication state are modified." ]