{"id":"2074626382525501806","url":"https://x.com/vladkrutenyuk/status/2074626382525501806","text":"New landing page for three-start -> shipped to celebrate v0.1.0 (the library is officially out of alpha)\n\nNOT A REPLACEMENT FOR THREE.JS. it doesn't touch its API at all. three.js stays a peer dep, your three.js code stays 100% the same. Just a thin helper on top, ~3.2kb minzipped.\n\nthree-start is a thin foundation layer that solves exactly that — and nothing more:\n\n▸ new ThreeStart() — renderer, scene, camera, render loop, timer, resize: wired\n▸ class Spin extends Object3DBehaviour → addComponent(cube, Spin) — behaviour attached to any Object3D, at any depth of the scene graph\n▸ one lifecycle for everything: onAwake → onEnable → onStart → onUpdate → onDisable → onDestroy\n▸ global systems (input, physics, assets) as ContextModules — any component reads them via this.modules, fully typed\n▸ setActive(obj, false) — one call deactivates a whole subtree, every component fires onDisable. Same call brings it back\n▸ vanilla + OOP. Not a React thing. Not an engine. A thin layer around Three.js, not a replacement for it\n\nThe landing in the video is a scroll-driven climb where each concept runs live in the scene — built with three.js + anime.js + three-start itself.\n\n#threejs #animejs #webgpu #threestart","author":{"name":"Vlad Krutenyuk (kvy)","username":"vladkrutenyuk","avatarUrl":"https://pbs.twimg.com/profile_images/1951577444726476800/oxKZOSc0_200x200.jpg"},"createdAt":"Tue Jul 07 22:47:28 +0000 2026","engagement":{"replies":5,"retweets":4,"likes":30,"views":8066},"media":{"photos":[],"videos":[{"url":"https://video.twimg.com/amplify_video/2074625507165945857/vid/avc1/3240x2028/oMt-tSfgYayJWtme.mp4?tag=28","thumbnailUrl":"https://pbs.twimg.com/amplify_video_thumb/2074625507165945857/img/Fn7uMdbhjc3N5Wfv.jpg","width":3240,"height":2028,"duration":57}]},"adhxContext":{"savedByCount":1,"publicTags":[],"previewUrl":"https://adhx.com/vladkrutenyuk/status/2074626382525501806"}}