Needle Engine is a web engine for high quality 3D applications with performance in mind.
Built on three.js and the glTF standard, Needle Engine delivers flexible, extensible web experiences with built-in collaboration and XR support.
🏓 Changelog • 📑 Documentation • 🧠 Sample Scenes • 💎 Showcase
🎮 Development Experience
🌐 Web & XR Ready
⚡ Performance Optimized
🎬 Animation & Effects
Powerful integrations for Unity and Blender allow artists and developers to collaborate and manage web applications inside battle-tested 3d editors. Needle Engine integrations allow you to use editor features for exporting models, author materials, animate and sequence animations, bake lightmaps and more.
Quick Start with npm:
npm install @needle-tools/engine
Or use our Editor Integrations: Follow the Getting Started Guide to download and install Needle Engine with Unity or Blender.
Explore Examples: Try our interactive samples to see what's possible ⚡
Available under commercial and educational licenses
Preview | Example | Description | Links |
---|---|---|---|
![]() |
Animate Anything | Interactive animation system | Code on Stackblitz • three.js Example |
![]() |
Postprocessing Effects | Custom magnifier effect with post-processing | Code on Stackblitz |
![]() |
Camera Focus DIV 1 | Responsive layout with camera focus | Code on Stackblitz |
![]() |
Camera Focus DIV 2 | Click-to-move camera focus example | Code on Stackblitz |
![]() |
FastHDR Loading | 10x faster than EXR, non-blocking, 95% less GPU memory | Code on Stackblitz • Learn more |
![]() |
Scrollytelling Example | No-Code example for using browser scroll and cursor to create playful and stunning 3D backgrounds | Included in Samples Package |
AR Restaurant | Interactive AR restaurant experience | Code on Github | |
Custom Loading Overlay | Wait for LODs with custom loading states | Code on Stackblitz | |
React Shopping Cart | E-commerce integration with React | Code on Stackblitz | |
👋 More examples on samples.needle.tools, docs.needle.tools and in the Needle Engine Stackblitz Collection
🌵 Needle •
Github •
Twitter •
Discord •
Forum •
Youtube
fitCamera
function<needle-engine poster>
attribute. It works with an URL to an image that should be shown as a poster image. If no URL is assigned then the poster that is automatically generated during the first frame will be usedmaterial
accessing error when component was not yet initializedsharedMaterial
typescript typeaddKnot
and removeKnot
to modify the spline and getPointAt(t01:number)
to get a point on the spline curve. Splines currently only support cubic interpolation.position01
property.setPrimaryImage
and addImage
to simplify image tracking changes at runtime.worldForward
can now be set (e.g. myObject.worldForward = new Vector3(0,0,1)
)