{"id":"metamorphosis","title":"Metamorphosis","category":"Morphing","prompt":"A study in topological transformation: an octagram geometry ring smoothly morphs into an origami bird tessellation, while satellite sparks orbit a pulsating core. The morphs_to relation continuously recalculates path geometry and color interpolation.","designedBy":{"provider":"anthropic","model":"claude-fable-5","inference":{"inputTokens":0,"outputTokens":0,"costUsd":0,"inPerMTokUsd":10,"outPerMTokUsd":50,"interactive":true}},"render":{"jobId":"rnd_1788538628256_wn4iqd","credits":8,"priceUsd":0.12,"format":"mp4","renderMs":11730,"frameCount":240,"bytes":344151,"seed":1584172107,"engineVersion":"v0.5.6","width":1920,"height":1080,"fps":30,"durationSeconds":8},"howToReproduce":{"renderApi":"POST /v1/renders with `renderRequest` below as the body (Authorization: Bearer <your pp_sa_… key>).","editor":"/gallery/metamorphosis/editor opens this piece live in the studio.","codeConsole":"/gallery/metamorphosis.js is this piece as PinePaper code — paste it into the editor's AI code console."},"renderRequest":{"scene":{"canvas":{"width":960,"height":540},"items":[],"relations":[],"generators":[],"media":[],"skeletons":[],"background":"#060814","engineOps":[{"tool":"execute_custom_code","args":{"description":"Metamorphosis: geometric octagram ring to origami bird tessellation via continuous morphs_to relation","code":"function prng(seed){var t=seed>>>0;return function(){t+=0x6D2B79F5;var r=Math.imul(t^(t>>>15),1|t);r^=r+Math.imul(r^(r>>>7),61|r);return((r^(r>>>14))>>>0)/4294967296;}}\nvar r = prng(1080924);\n// 1. Scene setup: Dark geometric backdrop\nvar W = 960, H = 540, DUR = 8;\n// Substrate grid\nfor (var gx = 60; gx <= W - 60; gx += 60) {\n  PinePaper.create('line', { from: [gx, 40], to: [gx, H - 40], strokeColor: '#1e293b', strokeWidth: 1, opacity: 0.25 });\n}\nfor (var gy = 40; gy <= H - 40; gy += 60) {\n  PinePaper.create('line', { from: [60, gy], to: [W - 60, gy], strokeColor: '#1e293b', strokeWidth: 1, opacity: 0.25 });\n}\n// 2. Geometry Group A: Octagram / Sacred Geometry Ring\nvar groupA = [];\nfor (var i = 0; i < 8; i++) {\n  var ang = (i / 8) * Math.PI * 2;\n  var x = W / 2 + Math.cos(ang) * 110, y = H / 2 + Math.sin(ang) * 110;\n  var id = PinePaper.create('polygon', { x: x, y: y, sides: 6, radius: 24, fillColor: i % 2 ? '#38bdf8' : '#818cf8', opacity: 0.85 });\n  groupA.push(id);\n}\n// 3. Geometry Group B: Origami Bird / Fluttering Tessellation\nvar groupB = [];\nvar birdOffsets = [[0, -80], [-70, -20], [70, -20], [-130, -50], [130, -50], [0, 40], [-40, 90], [40, 90]];\nfor (var j = 0; j < 8; j++) {\n  var bx = W / 2 + birdOffsets[j][0], by = H / 2 + birdOffsets[j][1];\n  var bid = PinePaper.create('triangle', { x: bx, y: by, width: 44, height: 44, fillColor: j % 2 ? '#fb7185' : '#f43f5e', opacity: 0 });\n  groupB.push(bid);\n}\n// Wire morphs_to relations across the node pairs\nfor (var k = 0; k < 8; k++) {\n  PinePaper.addRelation(groupA[k], groupB[k], 'morphs_to', { duration: 2.5, delay: 1.2, loop: true, morphColor: true });\n}\n// Center core pulsation\nvar core = PinePaper.create('circle', { x: W / 2, y: H / 2, radius: 18, fillColor: '#38bdf8' });\nPinePaper.animate(core, { animationType: 'pulse', speed: 0.8 });\n// Ambient orbiting telemetry sparks\nfor (var s = 0; s < 12; s++) {\n  var sid = PinePaper.create('circle', { x: W / 2, y: H / 2, radius: 3, fillColor: '#e2e8f0', opacity: 0.7 });\n  PinePaper.addRelation(sid, core, 'orbits', { radius: 160 + (s % 3) * 35, speed: 0.2 + (s % 4) * 0.15, phase: (s / 12) * Math.PI * 2 });\n}\nvar title = PinePaper.create('text', { x: W / 2, y: 490, content: 'morphs_to \\u00b7 topological vector metamorphosis', fontSize: 16, fillColor: '#94a3b8', fontFamily: 'Roboto Mono' });"}}]},"exportProfile":{"format":"mp4","resolution":"1080p","fps":30,"durationSeconds":6},"source":{"prompt":"A study in topological transformation: an octagram geometry ring smoothly morphs into an origami bird tessellation, while satellite sparks orbit a pulsating core. The morphs_to relation continuously recalculates path geometry and color interpolation.","provider":"anthropic","model":"claude-fable-5","app":"gallery-reproduction"}},"ops":[{"tool":"pinepaper_set_canvas_size","args":{"width":960,"height":540}},{"tool":"pinepaper_set_background_color","args":{"color":"#060814"}},{"tool":"pinepaper_execute_custom_code","args":{"description":"Metamorphosis: geometric octagram ring to origami bird tessellation via continuous morphs_to relation","code":"function prng(seed){var t=seed>>>0;return function(){t+=0x6D2B79F5;var r=Math.imul(t^(t>>>15),1|t);r^=r+Math.imul(r^(r>>>7),61|r);return((r^(r>>>14))>>>0)/4294967296;}}\nvar r = prng(1080924);\n// 1. Scene setup: Dark geometric backdrop\nvar W = 960, H = 540, DUR = 8;\n// Substrate grid\nfor (var gx = 60; gx <= W - 60; gx += 60) {\n  PinePaper.create('line', { from: [gx, 40], to: [gx, H - 40], strokeColor: '#1e293b', strokeWidth: 1, opacity: 0.25 });\n}\nfor (var gy = 40; gy <= H - 40; gy += 60) {\n  PinePaper.create('line', { from: [60, gy], to: [W - 60, gy], strokeColor: '#1e293b', strokeWidth: 1, opacity: 0.25 });\n}\n// 2. Geometry Group A: Octagram / Sacred Geometry Ring\nvar groupA = [];\nfor (var i = 0; i < 8; i++) {\n  var ang = (i / 8) * Math.PI * 2;\n  var x = W / 2 + Math.cos(ang) * 110, y = H / 2 + Math.sin(ang) * 110;\n  var id = PinePaper.create('polygon', { x: x, y: y, sides: 6, radius: 24, fillColor: i % 2 ? '#38bdf8' : '#818cf8', opacity: 0.85 });\n  groupA.push(id);\n}\n// 3. Geometry Group B: Origami Bird / Fluttering Tessellation\nvar groupB = [];\nvar birdOffsets = [[0, -80], [-70, -20], [70, -20], [-130, -50], [130, -50], [0, 40], [-40, 90], [40, 90]];\nfor (var j = 0; j < 8; j++) {\n  var bx = W / 2 + birdOffsets[j][0], by = H / 2 + birdOffsets[j][1];\n  var bid = PinePaper.create('triangle', { x: bx, y: by, width: 44, height: 44, fillColor: j % 2 ? '#fb7185' : '#f43f5e', opacity: 0 });\n  groupB.push(bid);\n}\n// Wire morphs_to relations across the node pairs\nfor (var k = 0; k < 8; k++) {\n  PinePaper.addRelation(groupA[k], groupB[k], 'morphs_to', { duration: 2.5, delay: 1.2, loop: true, morphColor: true });\n}\n// Center core pulsation\nvar core = PinePaper.create('circle', { x: W / 2, y: H / 2, radius: 18, fillColor: '#38bdf8' });\nPinePaper.animate(core, { animationType: 'pulse', speed: 0.8 });\n// Ambient orbiting telemetry sparks\nfor (var s = 0; s < 12; s++) {\n  var sid = PinePaper.create('circle', { x: W / 2, y: H / 2, radius: 3, fillColor: '#e2e8f0', opacity: 0.7 });\n  PinePaper.addRelation(sid, core, 'orbits', { radius: 160 + (s % 3) * 35, speed: 0.2 + (s % 4) * 0.15, phase: (s / 12) * Math.PI * 2 });\n}\nvar title = PinePaper.create('text', { x: W / 2, y: 490, content: 'morphs_to \\u00b7 topological vector metamorphosis', fontSize: 16, fillColor: '#94a3b8', fontFamily: 'Roboto Mono' });"}}],"license":"CC0-1.0"}