
Three Start
The missing foundation for Three.js app - bootstrap / lifecycle / a unified component model - thin layer, not a replacement for Three.js
Vladislav Kruteniuk
Three.js Marketplace
Three.js Marketplace
Kickstart your Three.js and React Three Fiber (R3F) projects with our free and premium components themes and tools. Designed for freelancers, developers, and agencies, each product includes essential features to get you up and running quickly.
Web Development
Help with your project?
Custom Three.js, WebGL, and WebGPU development — from product visualizers to interactive 3D websites.
Links
Featured Badge
Add this badge to your website to show you are featured on Three.js Resources.
Description
three-start is a minimal foundation layer for Three.js. It bootstraps the renderer, scene, camera, animation loop, and resize handling for you, and gives you a single component/lifecycle model to build the rest of your logic on — without replacing anything Three.js already does well.
https://three-start.com/docs
The render loop, frame time (getDeltaTime() / getTime()), canvas resize, and lifecycle teardown are already wired up — the only code you wrote is the per-component logic itself.
The same handful of operations — addComponent, getComponent, setActive, destroy — and the same lifecycle event methods cover every component on every object, at any depth.
What it gives you
Zero boilerplate. Renderer, scene, camera, animation loop, resize — already set up. Mount the canvas and start.
Components on objects. Write a class that extends
Object3DBehaviour, overrideonUpdate/onAwake/onDestroy— attach it to anObject3D. The component hooks itself into the loop and the lifecycle.A single way to turn logic on and off.
component.enable()/disable()orsetActive(obj, true/false)— cascades activation or deactivation through a whole slice of the world, with all its components. No public "handle" methods, no passing references around.Global systems as context modules. Input, physics, asset manager, audio live in a
ContextModulewith the same lifecycle. Any component accesses them viathis.modules.<key>.Uniform code. Every component looks the same. You can read someone else's scene at a glance. Teams collaborate more easily. LLMs don't destroy your architecture — they have a clear frame to work within.
Minimal overhead. Per-frame event subscriptions are created only if the method is overridden. An empty component pays nothing for dispatch.
Who it's for
three-start is for you if you:
write Three.js in vanilla + OOP, not through React Three Fiber
are tired of writing the same bootstrap in every new project
want your code to look uniform and stay readable without context
are planning a project more complex than a single demo
share code, work on a team, or teach others
vibe-code and want the AI to stop destroying your architecture a week in
three-start is not for you if you prefer the React paradigm in 3D. In that case R3F is a great choice, and these aren't competing tools.
Sponsors
Related Resources

Dat.gui
dat.GUI is a lightweight controller library for real-time adjustments in three.js resources.

Leva
Leva is a GUI library for creating intuitive controls in three.js resources and web projects.

Hology Engine
Create 3D games and experiences for web, mobile and VR by using web technologies with Hology Engine.

Cyango
All-in-one Experiences Builder. From 2D to 3D, you can build and export full mobile and web apps.
