{"id":"seifert-surface","version":"1.0.0","title":"Seifert Surface","summary":"A translucent shimmering band with three half-twists whose single glowing edge is a trefoil knot, pulses of light running round it. Loops perfectly.","kind":"object","target":"three","collections":["chrome-glass","hypnotic-loops","product-reveals"],"tags":["trefoil knot","seifert surface","knot theory","twisted band","topology","translucent","iridescent","glow","mathematics","studio","loop","3d"],"loopable":true,"motion":"procedural","durationSeconds":16,"status":"published","media":{"poster":"https://aipixelwizard.com/media/seifert-surface/1.0.0/poster.webp","preview":"https://aipixelwizard.com/media/seifert-surface/1.0.0/preview.mp4","sample":"https://aipixelwizard.com/media/seifert-surface/1.0.0/sample.mp4","sampleBytes":1809026,"sampleNote":"Pre-rendered with the default settings. Customised settings must be exported locally (npm run render)."},"urls":{"page":"https://aipixelwizard.com/visuals/seifert-surface","manifest":"https://aipixelwizard.com/api/v1/visuals/seifert-surface/versions/1.0.0","agentMd":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/agent.md","files":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/","demo":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/index.html"},"description":"A knot you can hold a film across. The trefoil, the simplest knot, is the single edge of a band given three half-twists, so a soap film spanning it is a ribbon that twists three times as it goes round, with one side, one edge, and that edge tied in a knot. Here the band is a translucent, shimmering surface with a glowing knotted edge along which pulses of light run while the whole thing turns. Choose the finish (shimmer, rose, gold or ink), the width of the band, the number of pulses, the laps they make per loop, the turns of the knot per loop, the seed, the backdrop colour and whether the camera sways.","role":"Object (3D, three.js): a knot-theory showpiece for maths, science and design content.","useCases":["A maths, topology or knot-theory explainer","A science-museum or design-studio title scene","An elegant translucent loop"],"synonyms":["trefoil","spanning surface","knotted ribbon","three-twist band","knot surface","mathematical knot"],"digest":"6f26abd6c80c95e20cf9ffb6f99233a486f623056d919775d6bf040604e8c521","implementation":{"target":"three","runtime":"browser","language":"javascript","module":"esm","entry":"src/seifert-surface.js","exports":[{"name":"createSeifertSurface","signature":"createSeifertSurface({ finish?, width?, pulses?, laps?, turns?, seed? }) => { group, setProgress(progress), dispose() }","description":"The twisted band, its glowing knotted edge and the pulses of light, about 7 across, centred on the origin; needs an environment map."},{"name":"FINISHES","signature":"FINISHES: { shimmer, rose, gold, ink }","description":"Band colour, iridescence, opacity and the edge and pulse colours."}],"reusable":["src/seifert-surface.js"],"demo":"demo.js","harness":"index.html"},"dependencies":[{"id":"three","version":"0.185.1","scope":"source","reason":"Renderer, geometry and shader materials."},{"id":"chrome-material","version":"1.1.0","scope":"demo","reason":"Studio environment light, backdrop and contact shadow."},{"id":"apw-runtime","version":"1.0.0","scope":"demo","reason":"Demo harness."}],"uses":[],"usedBy":[],"params":[{"key":"finish","label":"Finish","type":"select","default":"shimmer","options":[{"value":"shimmer","label":"Shimmer"},{"value":"rose","label":"Rose"},{"value":"gold","label":"Gold"},{"value":"ink","label":"Ink"}]},{"key":"width","label":"Band width","type":"number","min":0.6,"max":1.4,"step":0.1,"default":1},{"key":"pulses","label":"Pulses","type":"integer","min":0,"max":40,"step":1,"default":14},{"key":"laps","label":"Pulse laps per loop","type":"integer","min":1,"max":3,"step":1,"default":1},{"key":"turns","label":"Knot turns per loop","type":"integer","min":0,"max":3,"step":1,"default":1},{"key":"seed","label":"Seed","type":"integer","min":1,"max":999,"step":1,"default":18},{"key":"background","label":"Backdrop","type":"color","default":"#10141f"},{"key":"orbit","label":"Camera sway","type":"boolean","default":true}],"presets":[{"id":"default","label":"Shimmer, 14 pulses","params":{}},{"id":"rose","label":"Rose, wide","params":{"finish":"rose","width":1.4,"background":"#1c1218"}},{"id":"gold","label":"Gold, many pulses","params":{"finish":"gold","pulses":32,"background":"#241a12"}},{"id":"ink","label":"Ink, two laps","params":{"finish":"ink","laps":2,"pulses":20,"background":"#0c1018"}}],"output":{"width":1080,"height":1080,"fps":30,"durationSeconds":16,"posterSeconds":3,"alpha":false,"motion":"procedural","loop":{"seamless":true,"cycleSeconds":16,"method":"The pulses make a whole number of laps of the edge per loop, the knot turns a whole number of times and its tilt is a sine of the loop, so the last frame meets the first."},"seed":{"param":"seed","behavior":"Seed sizes the pulses of light: same seed, same pulses."}},"composition":{"inputs":"Time within the loop; the finish, band width, pulses, laps, turns, seed, backdrop and camera sway.","outputs":"A full frame rendered in 3D with a studio environment.","coordinates":"The band's core circle has radius 2.4 and it is hung 3.3 above the floor; the band's half-width is 1.05 × the width setting; its three half-twists give a trefoil edge.","lighting":"A warm key light with a shadow map and the studio environment on the translucent band; the edge and pulses are self-lit.","timing":"setProgress(progress) places each pulse along the edge curve and turns the group; frames render in any order.","compatibleWith":["chrome-material","orbit-camera","kinetic-title","number-reveal"],"notes":["The edge is a single closed curve of length 4π in the band's parameter; the pulses ride it by arc length."]},"reuse":["Maths explainer: Shimmer, 14 pulses.","Soft: Rose, wide.","Luxe: Gold, many pulses."],"integration":{"newProject":"Create a WebGLRenderer with a studio environment, add createSeifertSurface().group and call knot.setProgress(progress) each frame.","existingProject":"Copy src/seifert-surface.js; add the group to your scene with an environment map."},"performance":{"notes":"A static band mesh of about 11 500 triangles, a tube of about 14 000 and up to 40 instanced pulses with a shadow map: a couple of milliseconds a frame on an integrated Intel GPU.","limits":"Software WebGL renders in about three seconds a frame."},"limitations":["A band with three half-twists is a spanning surface of the trefoil but is one-sided, so it is not an orientable Seifert surface; the genus-one Seifert surface needs a more complex shape.","The band is translucent without true refraction."],"license":{"spdx":"MIT","notice":"Copyright (c) 2026 AI Pixel Wizard. Released under the MIT License. See LICENSE in this folder.","thirdParty":[]},"rights":{"approvedForPublicRelease":true},"provenance":"Adapted from the owner's threejs-sketches/geometry-math/seifert-surface (MIT) and rebuilt for AI Pixel Wizard in October 2026 as an original studio object: a three-half-twist band whose edge is a trefoil knot, drawn as a translucent iridescent surface with a glowing edge tube and pulses riding it by arc length, on an exact loop.","changelog":[{"version":"1.0.0","date":"2026-10-05","notes":"Initial release."}],"verification":{"testedOn":"2026-10-06","inputs":{"seifert-surface@1.0.0":"6f26abd6c80c95e20cf9ffb6f99233a486f623056d919775d6bf040604e8c521","three@0.185.1":"664ca387e5fab46ff2daaa6895e1d015426850891af5ea5082cbbcc3985b068c","chrome-material@1.1.0":"ecb41776bfc1ee88997604f916a5ffe833f971d7edcc97c855697a5792d6f1dd","apw-runtime@1.0.0":"5be859cdac74823ba0bcc32c6daf06688a871104d24db5d4ceaffffd84d7c40d"},"environment":"Chrome 154.0.8037.97 headless on Linux 7.0.0-38-generic (x64), Node 22.14.0","renderer":"WebGL 2 via SwiftShader (software)","width":1080,"height":1080,"fps":30,"frames":480,"renderSeconds":1219,"loopCheck":{"checked":true,"seamless":true,"maxDifference":0,"note":"Frame 0 vs end state (progress 1): mean |Δ| 0.0000, max |Δ| 0 of 255."},"determinism":{"checked":true,"identical":true},"errors":[],"media":{"poster":"/media/seifert-surface/1.0.0/poster.webp","preview":"/media/seifert-surface/1.0.0/preview.mp4","sample":"/media/seifert-surface/1.0.0/sample.mp4","sampleBytes":1809026}},"files":[{"path":"LICENSE","size":1072,"sha256":"8a5f3a96f07e11522ec4bdd0a583356f99bad1245920f9709cee09b995a45153","contentType":"text/plain; charset=utf-8","url":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/LICENSE"},{"path":"asset.json","size":8215,"sha256":"cfe2d6cfb16d0108f45cb564f247e4a2321a51632aef77cdeef45eef8bcc3949","contentType":"application/json; charset=utf-8","url":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/asset.json"},{"path":"demo.js","size":2939,"sha256":"ba7b6e3ec75636e99f8ecbd7497c3ba5f9b28bd9f74642e9f37ccec78fc239de","contentType":"text/javascript; charset=utf-8","url":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/demo.js"},{"path":"index.html","size":529,"sha256":"77ed327dee1be205cae5e73640c720c8cb502562a4ba5dfd8e475215639047e7","contentType":"text/html; charset=utf-8","url":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/index.html"},{"path":"src/seifert-surface.js","size":5751,"sha256":"41257d22a62a6ce5ca162f8abe6fdd60c1e57dd7caa7fd33efaafcd2c76afc6e","contentType":"text/javascript; charset=utf-8","url":"https://aipixelwizard.com/registry/seifert-surface/1.0.0/src/seifert-surface.js"}],"warnings":[]}