<SYSTEM>This is the developer documentation for Needle.</SYSTEM>

# Needle

## Overview 

Needle Engine is a web engine for complex and simple 3D applications alike. Work on your machine and deploy anywhere. Needle Engine is flexible, extensible and has built-in support for collaboration and XR. It is built around the glTF standard for 3D assets.

Powerful integrations for Unity and Blender allow artists and developers to collaborate and manage web applications inside battle-tested 3d editors. These Integrations allow you to use editor features for creating models, authoring materials, animating and sequencing animations, baking lightmaps and more with ease.

Our powerful compression and optimization pipeline for the web makes sure your files are ready, small and load fast.

Full llms.txt: https://cloud.needle.tools/llms-full.txt

## Docs

### Needle Cloud
- [Needle Cloud Documentation](https://engine.needle.tools/docs/cloud/index.md)
- [Needle Cloud: FAQ](https://cloud.needle.tools/faq)

### Needle Engine
- [Needle Website](https://needle.tools): Get an overview of Needle, learn about the company and products
- [Needle Engine Samples](https://engine.needle.tools/samples): See a variety of samples for Needle Engines that serve as starting points and reference for your own projects
- [Needle Engine API](https://engine.needle.tools/docs/api/latest): The Needle Engine API with detailed documentation for all classes and functions that the engine offers
- [Needle Engine Documentation](https://engine.needle.tools/docs): Learn how to use Needle Engine or the integrations for Unity or Blender
- [Needle Engine Releases](https://github.com/needle-tools/needle-engine-support/releases): Follow along the latest Needle Engine updates
- [Needle Engine: Getting started](https://engine.needle.tools/docs/getting-started/index.md)
- [Needle Engine: Getting started with Unity](https://engine.needle.tools/docs/unity/index.md)
- [Needle Engine: Getting started with Blender](https://engine.needle.tools/docs/blender/index.md)
- [Needle Engine: Getting started without an editor](https://engine.needle.tools/docs/three/index.md)
- [Needle Engine: Vision](https://engine.needle.tools/docs/vision.md)
- [Needle Engine: Feature Overview](https://engine.needle.tools/docs/features-overview.md)
- [Needle Engine: Technical Overview](https://engine.needle.tools/docs/technical-overview.md)
- [Needle Engine: Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions.md)
- [Needle Engine: Deployment and Optimization](https://engine.needle.tools/docs/deployment.md)
- [Needle Engine: Networking](https://engine.needle.tools/docs/networking.md)
- [Needle Engine: WebXR: VR and AR](https://engine.needle.tools/docs/xr.md)
- [Needle Engine: `<needle-engine>` attributes](https://engine.needle.tools/docs/reference/needle-engine-attributes.md)
- [Needle Engine: `needle.config.json`](https://engine.needle.tools/docs/reference/needle-config-json.md)
- [Needle Engine: Scripting Examples](https://engine.needle.tools/docs/scripting-examples.md)
- [Needle Engine: Stub Component Compiler](https://engine.needle.tools/docs/component-compiler.md)
- [Needle Engine: Creating custom components](https://engine.needle.tools/docs/scripting.md)
- [Needle Engine: FAQ](https://engine.needle.tools/docs/faq.md)


## Typescript Examples

```ts
import { Behaviour } from "@needle-tools/engine";

export class MyComponent extends Behaviour { 

    start() {
        console.log("Hello World");
    }

    update() {
        console.log("Frame #" + this.context.time.frame);
    }

    onPointerClick() {
        console.log("CLICKED");
    }

}
```


## Optional

- [Community Support Forum](https://forum.needle.tools)
- [Developer Discord](https://discord.needle.tools)
- [Needle Customer Email](hi@needle.tools)

# FAQ

## Needle Cloud

### What is Needle Cloud?

Needle Cloud is an **online service provided by Needle** designed to **host, manage, optimize, and share 3D assets and spatial web applications**. Instead of setting up and managing your own web server infrastructure, you can use Needle Cloud to get your Needle Engine projects online.

**Key features and functions:**

*   **Spatial Web Hosting:** Directly deploy and host web applications built with Needle Engine (from Unity or Blender integrations, or via CLI) onto Needle's infrastructure. This makes your projects accessible via a public URL without manual server setup.
*   **Asset Management & Optimization:** Upload 3D assets in various formats (glTF, GLB, FBX, USD, VRM, etc.). Needle Cloud automatically processes and optimizes these assets (e.g., creating multiple levels of detail for meshes and textures) to ensure fast loading and good performance on the web.
*   **Content Delivery Network (CDN):** Hosted assets and applications benefit from Needle's CDN, ensuring fast access for users globally.
*   **Sharing & Version Control:** Easily share links to your hosted assets or applications. The platform supports uploading new versions while keeping URLs consistent, and allows tagging specific versions (e.g., 'main', 'experimental') for review workflows.
*   **Automation (CLI):** Offers a command-line interface (CLI) to automate uploading and optimization, allowing integration into existing CI/CD pipelines.
*   **Privacy & Security:** Designed for private management of assets, not as a public marketplace or social network. Options for password protection on hosted apps are available.

[**Learn More**: Needle Cloud Documentation](https://engine.needle.tools/docs/cloud/)

### Why should I use Needle Cloud?

Needle Cloud makes **hosting, sharing, and optimizing** your 3D projects easy. It removes the need for you to set up and manage your own web servers and CDNs, handles complex 3D asset optimization for fast web delivery, and provides easy ways to share projects with the world.

### Do I have to use Needle Cloud to deploy Needle Engine projects?

**No.** Needle Engine exports standard web projects (HTML, JS, CSS, glTF assets). You can host these projects on **any web server or hosting platform** you choose (like Netlify, Vercel, GitHub Pages, itch.io or your own server).

Needle Cloud is an **optional, convenient service** provided by Needle to streamline this process, especially for asset optimization and quick sharing.

### How do I upload 3D assets to Needle Cloud?

You can upload assets and projects using the **Needle Cloud website**. After you sign up, you can simply drop your assets on the page to upload and optimize them.
                    
If you're managing a lot of assets, you can use the **Needle Cloud Command Line Interface (CLI)** for automation. The CLI is particularly useful for integrating Needle Cloud into your existing deployment workflows.

### How do I upload websites to Needle Cloud?

You can upload projects to Needle Cloud via our **Unity and Blender integrations**. Both of them have Needle Cloud built-in and uploading a new version of an app is just a click away.
                    
You can also upload projects using the **Needle Cloud website**. After you sign up, drop your built project folder (containing a static website with a index.html and its dependencies) on the page to upload it.

Or you can deploy directly from CI environments like Github using the **Needle Cloud CLI**: [Automated Deployments](https://engine.needle.tools/docs/cloud/#automated-deployments)

### What kind of files can I upload?

Needle Cloud is primarily designed for **3D assets** used in realtime projects. It accepts common formats like **glTF, GLB, FBX, USD, VRM, OBJ**. We optimize these files for efficient web usage – glTF/GLB with various optimization levels. 

Cloud Optimization uses the same powerful pipeline that ships with our Needle Engine integrations.

### How does Needle Cloud optimize my files?

Optimization in Needle Cloud refers to automatically processing your uploaded 3D assets to make them **load faster and perform better** on the web. This includes tasks like:
-   Mesh simplification (creating multiple level-of-detail meshes) for progressive loading
-   Texture resizing (creating different resolutions) for progressive loading
-   Mesh compression with **GPU optimized formats** (Draco, Meshopt) 
-   Texture compression with **GPU optimized formats** (KTX/Basis Universal, WebP)
-   Converting different 3D model formats to the web-standard **glTF/GLB**
-   Ensuring assets are delivered efficiently via our **Content Delivery Network (CDN)**.

### Is Needle Cloud like Sketchfab, Fab, or other 3D marketplaces?

**No.** Needle Cloud is primarily a **private and secure hosting and asset management platform** for your own projects and team workflows. Your assets are not publicly discoverable, it's not a marketplace, and it doesn't try to be a social platform.

### Is Needle Cloud secure? Can I keep my projects private?

**Yes.** Needle Cloud is designed for **private 3D asset management and hosting**. You manage access to your account and assets. Hosted applications and assets have options for **password-protected sharing**.
                    
Needle Cloud is compliant with **GDPR** regulations, ensuring your data is handled securely and privately.

### How much does Needle Cloud cost?

Creating an account on Needle Cloud is free. For commercial use of Needle Engine and Needle Cloud you need a **Pro license**, which gives you full access to our suite of tools and services.

For pricing details, please refer to the **[pricing page](https://needle.tools/pricing).**

### How does Needle Cloud relate to Needle Engine?

Needle Cloud and Needle Engine can be used independently, but they are designed to work together seamlessly.  
-   **Needle Cloud** is a **web service** used to **host, optimize, and share** 3D assets and apps made with Needle.
-   **Needle Engine** is the **runtime and tooling**, with integrations into Unity and Blender, used to create rich, interactive 3D web apps.

3D assets uploaded to Needle Cloud can be linked into apps made with Needle, and into other realtime applications. Apps made with Needle can be hosted in Needle cloud.


### How do we make your 3D models load faster?

Needle optimizes your 3D models using a combination of **best practices** and **technology developed by us**. 
                    We created a technique we call **Progressive Loading** to get your content on screen much faster. It functions similar to lazy loading for images on a webpage.
    
Instead of having to wait for the entire high-quality model to download, we create a number of progressively simplified versions upfront, that **load almost immediately**. Then, we continue downloading the higher-quality details in the background and seamlessly swap them in once they arrive.

This has a number of benefits:
-   **Your users see something sooner**   
  No more staring at blank spaces waiting for big files to finish downloading.
-   **Your application loads faster**   
  The overall experience is much more responsive, even on slower connections.
-  **High-quality details are preserved**   
  We're not reducing the quality of your models – they stay as high-quality as you made them. Simplified versions are used during loading, or when users look at them from a distance, but as soon as they get close, we swap in the full detail version.

Think of it like loading an image on a webpage: you might see a somewhat blurry version first that quickly gets sharper. **We bring that same instant preview experience to 3D models.**

## Needle Engine

### What is Needle Engine?

**Needle Engine** is a flexible, web-based runtime designed for creating interactive 3D apps and spatial websites. It emphasizes fast iteration speeds and aims to bridge the gap between artist-friendly tools like Unity and Blender and modern web development practices. 
                
Needle Engine builds upon the **three.js** library.

### Can I really make apps where users don't need to install anything?

**Yes!** Needle Engine is designed for the **web**. This means users can access your apps directly in their browser without needing to install anything. This is a key advantage of using Needle Engine, as it allows for easy sharing and distribution.

### What devices and browsers does Needle Engine support?

**Any device that has a modern browser.** Needle Engine is designed for **cross-platform compatibility** and works in any browser with WebGL2 support. Apps made with it run on mobile phones, desktops, VR headsets and AR devices, and even future devices as long as they have a browser. 

For immersive experiences in VR and AR, we leverage **WebXR** where available. Scenes are also compatible with AR on iOS via our interactive on-the-fly **USDZ** conversion for QuickLook, supported on iOS, iPadOS and visionOS.

- **Browsers:** Chrome, Safari, Firefox, Edge, Brave, Quest Browser, Samsung Browser, QQ Browser, ...
- **Desktop platforms:** Windows, macOS, Linux, ChromeOS, ...
- **Mobile platforms:** iOS, iPadOS, Android, Steam Deck, ...
- **VR and AR devices:** Meta Quest, Pico, Valve Index, Hololens, Magic Leap, Apple Vision Pro, ...

[**Learn More** about supported XR devices](https://engine.needle.tools/docs/xr.html#supported-devices)

### How does Needle Engine work with Unity?

Needle provides a powerful **Unity Package** to integrate with Needle Engine. You can use Unity's visual tools to set up scenes, and export them to the browser through Needle Engine. You can use PBR materials, animations and sequencing, lighting and lightmaps, physics, custom components, and more. 

Needle Engine is a modern alternative to Unity's WebGL builds, but with a focus on **fast iteration** and **web-native** features like WebXR. On average, apps made with Needle load at least 10x faster than Unity WebGL equivalents. 

[**Learn More**: Getting Started Documentation](https://engine.needle.tools/docs/getting-started/)

### How does Needle Engine work with Blender?

Needle Engine provides a powerful **Blender Add-On** to integrate with Needle Engine. This integration allows users to set up and export complex 3D scenes directly from Blender to the web. It supports exporting models, materials, animations. The Add-On adds features like timelines, sequencing and animator state machines to Blender, and includes easy tools to create beautiful lightmapped scenes with a few clicks.

[**Learn More**: Getting Started Documentation](https://engine.needle.tools/docs/getting-started/)

### Can I use Needle Engine without Unity or Blender?

**Yes.** Needle Engine can be used directly via its [**npm package**](https://npmjs.org/package/@needle-tools/engine) within standard web development workflows (e.g., with Vite, React, Vue, Svelte). It also offers a convenient **Web Component** (`<needle-engine>`) that allows embedding 3D scenes directly into HTML with minimal code.

[**Read More**: Needle Engine Web-Component documentation](https://engine.needle.tools/docs/three/)
[**Read More**: Needle Engine Examples on Stackblitz](https://stackblitz.com/@marwie/collections/needle-engine)


### I'm using another 3D software. Can I use Needle Engine?

**Probably yes.** You can create your 3D scene in any software that supports exporting to glTF, and either upload exported files directly to Needle Cloud or integrate the scene with a Needle Engine web project.
                    You'll add components and interactivity via programming, if needed.

[**Read More**: Needle Engine web component documentation](https://engine.needle.tools/docs/three/)
[**Read More**: Needle Engine examples on Stackblitz](https://stackblitz.com/@marwie/collections/needle-engine)


### What are the core technologies behind Needle Engine?

Needle Engine brings together several key technologies that are required to build today's modern 3D web apps.
- **Development Environment:** Needle Engine is built with **TypeScript**, and uses **vite and node.js** as development environment. This allows you to use hot reloading and fast iteration speeds, similar to other modern web development frameworks.
- **Rendering:** Needle uses the popular **three.js** library for rendering.
- **Component System:** Needle provides a **component-based architecture** for building interactive experiences. This allows you to create reusable components and attach them to objects in your scene, similar to other game engines.
  - **Built-In Functionality:** Needle Engine provides many **built-in components** that can be used to create interactive experiences. These components are designed to be easy to use and can be added to objects in your scene without writing any code.
  - **Physics:** We use Rapier.js for physics simulation, which is an efficient physics engine that works well in the browser.
  - **Networking:** Needle Engine has built-in networking capabilities, powered by WebRTC and Peer.js, running on our own networking stack.
  - **Custom Components:** New components can be created in TypeScript or JavaScript. We automatically generate UI for Unity and Blender so that you can easily assign and configure them in the editor.
- **Data:** The core asset format we use is **glTF 2.0**. Beyond the standard glTF features and Khronos extensions, we're using custom extensions (called vendor extensions) to store rich scene and component data like lighting settings, physics data, audio, video and much more.
- **Integrations:** Needle Engine has integrations for **Unity** and **Blender**, which allow you to create and export 3D scenes directly from these applications. The integrations provide a seamless workflow for artists and developers, allowing them to use the tools they are already familiar with while taking advantage of the powerful features of Needle Engine.

[Learn more about our contributions to glTF](https://engine.needle.tools/docs/technical-overview.html) 


### I need high-quality visuals. Is that possible on the web?

**Yes.** Needle Engine fully supports **Physically-Based Rendering** workflows (PBR). We support many sophisticated glTF material extensions like clearcoat, transmission, IOR, specular, iridescence, anisotropy, volume and dispersion for rich visual effects and realistic results. 
                    
Needle also provides fine-grained control over lighting and shadows of your scene and assets. You can use modern tonemapping algorithms like AgX and ACES, and add a wide range of post-processing effects like bloom, depth of field, color grading, and more to your scene.

### Can I use visual shader tools like Unity's Shader Graph?

Yes, when using the Unity integration, **custom unlit shaders** created with Shader Graph can be exported to the web, allowing artists to create custom visual effects without writing code. 
                
[**Roadmap**: Vote for MaterialX support](https://cloud.needle.tools/roadmap#materialx-export-from-unity-to-needle-engine) in Needle Engine for even more seamless workflows. 

[**Learn More**: Custom Shader Documentation](https://engine.needle.tools/docs/export.html#exporting-materials)

### How does Needle Engine handle light, shadows, and lightmaps?

Needle Engine supports image-based lighting, real-time light sources and baked lighting.
Image-based lighting (IBL) uses high-dynamic-range (HDR) images to create realistic lighting and reflections with near-zero performance impact. It can be used with or without real-time lights.
Real-time lights can be point, spot, or directional light sources.

Needle also allows fine-grained control over shadows, including enabling shadow casting and receiving on a per-object basis.
Lightmaps can be baked and exported from our Unity and Blender integrations.

Additionally, reflection probes are also supported, and you can add post-processing effects like bloom, depth of field, and color grading to enhance the visual quality of your scenes.

### Can I create collaborative apps or multiplayer games with Needle?

**Yes.** Networking is a **built-in feature** in Needle Engine, and many of our components support networking out of the box. Our networking stack can be used **at no additional cost** across all supported platforms. 

We provide both no-code components and scripting APIs for creating multi-user experiences with synchronized world states, networked objects, persistent storage, and integrated voice chat and screensharing capabilities.

These features allow creating real-time collaborative applications, virtual worlds, multiplayer games, and other interactive experiences where multiple users can interact with the same 3D environment, or where a user can come back to the same state of the world later.
                    
[**Learn More**: Networking Documentation](https://engine.needle.tools/docs/networking.html)

### Does Needle Engine support Augmented Reality on Android and iOS?

**Yes! Needle Engine supports AR on Android and iOS** right from the browser, with full WebXR support on both platforms.

**Android:** Full WebXR AR support in Chrome and Firefox browsers.

**iOS:** Needle Engine now provides full WebXR support on iPhone and iPad through App Clip technology (powered by ARKit). Users can experience your WebXR AR content instantly via QR codes, links, or smart app banners without installing an app. No code changes required – your existing WebXR scenes work automatically on iOS, bringing iOS AR on par with Android.

**visionOS:** On Apple Vision Pro, we automatically use interactive USDZ/QuickLook for AR experiences, leveraging Apple's native 3D format. This feature is powered by Needle Engine's [Everywhere Actions](https://engine.needle.tools/docs/how-to-guides/everywhere-actions/), allowing for rich interactivity on all platforms.

[**Learn More**: iOS WebXR with App Clips](https://engine.needle.tools/docs/how-to-guides/xr/ios-webxr-app-clip.html)
[**Learn More**: AR Documentation](https://engine.needle.tools/docs/how-to-guides/xr/)
[**Learn More**: Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions.html)
                    

### What are Everywhere Actions?

**Everywhere Actions** are components that ship with Needle Engine and are available in the Unity integration. They allow creating common interactions, like playing audio or animations on click, changing materials, toggling visibility or having objects look at the camera, **without writing code**. 
                    
They are called Everywhere Actions because they work on **all platforms**, including the limited interactivity environment of iOS AR (QuickLook/USDZ).
                
[**Learn More**: Everywhere Actions](https://engine.needle.tools/docs/everywhere-actions.html)

### Does Needle Engine support physics simulation?

**Yes**, Needle Engine includes support for **real-time physics simulation**. You can add Rigidbody components and various collider types (box, sphere, mesh) to objects within the Unity or Blender integrations, and these physics properties will be exported and simulated in the web runtime.

### Can I use animations and sequencing in Needle Engine?

**Yes.** Needle Engine allows for animation workflows ranging from simple object animations, over character state machines, to choreographing and sequencing many different clips and assets. 

You can animate characters, lights, cameras, component properties, and materials. When using the Unity integration, both Animator controllers (for state machines) and Timelines (for sequencing) are exported into web-ready formats, including Animation, Audio, Activation, Control, and Signal tracks. Some features are limited, like blend tree and sub-statemachine support.

Technically, animation in Needle Engine is made possible by the `KHR_animation_pointer` glTF extension and our own extensions for timelines, sequencing, audio, video and more.

### Can I write custom code or make my own components?

**Yes!** Needle Engine uses a **component-based workflow**. You can create custom components using **TypeScript or JavaScript**, and attach them to objects in your scene.  
 When using the Unity/Blender integration, there's a system where you write TypeScript code, and a compiler automatically generates corresponding C# components / panels in Unity/Blender for easy assignment and property inspection in the editor. This allows you to leverage the editor's visual tools while still writing custom logic in TypeScript.
 
 [**Learn More:** Scripting Documentation](https://docs.needle.tools/scripting)

### Do I have to write code to work with Needle Engine?

**No.** Needle Engine is designed to be accessible to artists and developers alike. You can create interactive experiences using **Visual Tools** like our Unity and Blender integrations, and use **Everywhere Actions** for common interactions without writing code. A lot of projects can be made without any coding at all.

If you want to create more complex interactions, you **can** write custom scripts in TypeScript or JavaScript. Our scripting API is designed to be intuitive and easy to use, even for those new to programming. We also provide AI assistance for coding help, and a lot of examples to get you started.


### How does Needle Engine make projects load so fast on the web?

Needle Engine incorporates an automatic **optimization pipeline**. This optimization pipeline can improve load times tremendously, even for very complex scenes, without you having to do anything.
                    
Here's how it works:
1. We automatically create **multiple levels of detail** (LODs) for all meshes and textures in your scene. These LODs are in separate files, so they can be loaded progressively. This means that when a user first loads your scene, they see a low-resolution version of the model, and as they get closer, the higher-resolution versions are loaded in the background.
2. We compress all 3D assets using state-of-the-art, industry-proven compression algorithms like **Draco** for meshes and **KTX2 or WebP** for textures. Together with progressive loading, this ensures faster load times, vastly lower memory usage, and better runtime performance.
3. At runtime, we use **GPU instancing** and automated batched rendering for additional performance.
                    
[**Learn More** about Optimization](https://engine.needle.tools/docs/deployment.html#production-builds)

### What do I need to install to use Needle Engine on my computer?

You'll need **Node.js** (LTS versions recommended) for managing your web project, previewing, and building. A code editor like **Visual Studio Code** is needed for writing code and adjusting the HTML UI of your app. For texture optimization, installing **KTX Utility** is recommended. 
                    
[Download **Node.js**](https://nodejs.org/en/download/)
[Download **Visual Studio Code**](https://code.visualstudio.com/)
[**Learn More**: Getting Started with Needle](https://engine.needle.tools/docs/getting-started/)

### Is Needle Engine free? Can it be used for commercial projects?

Needle Engine has different [plans](https://needle.tools/pricing). You can get started for free, and keep using Needle for free for non-commercial use, with our logo visible. For commercial use, you'll need a **Pro license**. All licenses include Needle Cloud usage.
                    
[**See Pricing**](https://needle.tools/pricing)
                    

### Where can I find documentation, tutorials, and examples?

Exensive documentation and examples are available:
-   **Documentation**: [docs.needle.tools](https://docs.needle.tools)
-   **Tutorials**: Video guides on our [YouTube channel](https://youtube.com/@needle-tools).
-   **Samples**: 100+ open-source [example projects](https://samples.needle.tools).
-   **Showcase**: [Projects made with Needle](https://engine.needle.tools/samples/?overlay=showcase) by our customers.
-   **AI Assistant**: Available in the [Needle Cloud](https://cloud.needle.tools) team page, and in our [forum](https://forum.needle.tools). Our AI assistant is trained on our documentation and can help you with questions about Needle Engine, Unity, Blender, and more.   
  For *offline* AI usage we offer [llms.txt](https://cloud.needle.tools/llms.txt) / [llms-full.txt](https://cloud.needle.tools/llms-full.txt) files for download.


### Can I use AI tools with Needle Engine?

**Yes!** We provide a free AI assistant that knows all about our docs on Needle Cloud, and in our [forum](https://forum.needle.tools). They are pretty good at helping you with you with coding and questions.

Additionally, we provide [llms.txt](https://cloud.needle.tools/llms.txt) and [llms-full.txt](https://cloud.needle.tools/llms-full.txt) files that you can pass as context to your own AI models.

[**Ask questions** in the forum](https://forum.needle.tools)
[**Sign in** and then go to your team page to chat with our AI](https://cloud.needle.tools/team)

                    

### How can I get support or connect with the community?

We have an active and supportive community. Connect via:
-   **Discord Server**: [discord.needle.tools](https://discord.needle.tools)
-   **Community Forum**: [forum.needle.tools](https://forum.needle.tools) including the Needle AI assistant
-   **Social Media**: [Twitter/X](https://twitter.com@NeedleTools) or [YouTube](https://www.youtube.com/@needle-tools)
-   **AI Assistant**: Available in the [Needle Cloud](https://cloud.needle.tools) team page, and in our [forum](https://forum.needle.tools). The AI assistant is trained on our documentation and can help you with questions about Needle Engine, Unity, Blender, and more. 


### Where can I host apps made with Needle?

**Apps made with Needle can be hosted anywhere**. Needle Engine projects are often static web sites – that means they don't require any server code, only file hosting. So projects can be deployed wherever you can host files, for example on a web server, cloud storage, or hosting platform. Of course, you can also bring your own server-side code. 
            
**Needle Cloud** is our recommended hosting solution, designed to work seamlessly with Needle Engine. It includes a **Content Delivery Network** (CDN) for fast global access. It also provides easy deployment options from Unity and Blender, and allows managing 3D assets and web apps with your team.

**Other options include:**
-   **Hosting Services:** Services like Needle Cloud, Netlify, Vercel, GitHub Pages, Cloudflare Pages, itch.io, or Glitch are excellent choices and often have free tiers. Needle's editor integrations include direct deployment options to some of these services.
-   **Cloud Storage:** Cloudflare R2, AWS S3, Google Cloud Storage, Azure Blob Storage and others can serve pages globally via CDN, similar to Needle Cloud.
-   **Web Servers:** Deploy to **Apache, IIS**, or other servers capable of serving static content.
-   **On-Premises:** You can host apps made with Needle on your own servers and infrastructure.
-   **As part of other websites:** You can seamlessly integrate Needle within existing web applications made with any framework – React, Vue, Angular, Svelte, Next.js, etc.

[**Learn More**: Deployment Documentation](https://engine.needle.tools/docs/deployment.html)


### Can I integrate OAuth or other authentication methods?

**Yes.** Needle Engine runs as part of a standard web page or web application. It does not handle authentication directly, but you can implement authentication using standard web practices and connect it to your app.
    
**How it works:**
1.  Your surrounding web application – the page where Needle is used – handles the authentication flow (e.g., redirecting to an OAuth provider like Google, Azure AD, Auth0, Okta; or handling JWT tokens).
2.  Once the user is authenticated, your application's frontend code has access to user information or tokens.
3.  You can use this authentication status to:
    -   Control access to the Needle Engine experience itself.
    -   Pass user information or tokens to Needle Engine components and scripts if needed, for example to personalize the experience or make authenticated API calls from within the 3D scene
    -   Secure backend API calls made from your Needle application using bearer tokens or session cookies.
    
Essentially, Needle Engine operates within the security context established by your broader web application.

### Can Needle Engine connect to backend databases or APIs?

**Yes.** Needle Engine applications are web applications running JavaScript in the browser. You can use standard browser APIs like `fetch()` or libraries like `axios` within your custom Needle Engine components to:
-   **Fetch data** from any RESTful API, GraphQL endpoint, or similar
-   **Send data** back to your servers, for example to save user progress, submit high scores, update state.
-   **Connect to backend services** for real-time updates using WebSockets or other protocols if needed.

Your backend can be built with any technology (Node.js, Python, Java, .NET, etc.) and connect to any database (SQL, NoSQL). Needle Engine interacts with it via standard web API calls.

For some of your backend needs, Needle's built-in networking might already be enough – for example, for storing a persistant world state across sessions. Consult the documentation for more details on how to choose the right approach for your use case.
                    
[**Learn More**: Networking Documentation](https://engine.needle.tools/docs/networking.html)

### Can Needle Engine scale to many users? What about multiplayer?

**Yes.** Scalability involves multiple aspects:
    
1. **Website Load Times:** Needle uses best practices for the modern web and modern formats, like compressed glTF and progresssive loading, to optimize load times and rendering performance. This means that many users can simultaneously access websites made with Needle, same as other static websites. Using a **CDN** like Needle Cloud improves load times for globally distributed users as well.
2.  **Rendering Performance:** Performance depends on scene complexity, target hardware, and optimizations. Needle builds on Three.js, benefiting from its performance characteristics. Needle does many optimizations out of the box, and you can additionally optimize your assets within Unity or Blender (reducing triangle count, draw calls, texture sizes) if needed.
3.  **Networking and Multiplayer:** Needle's built-in networking uses **WebRTC (PeerJS)**, which is suitable for shared sessions with ~16-32 concurrent users, depending on scene complexity and server performance. For larger-scale concurrency (hundreds/thousands of users), you would typically need a **dedicated server architecture** or integrate with third-party scalable networking solutions. Needle's networking components might serve as a starting point and you can later switch to solutions for massive-scale scenarios if needed.
4.  **Backend Scalability:** If your application relies heavily on server-side code, the scalability of that backend infrastructure is a separate but critical factor for handling many users. This depends on your backend technology and architecture. For example, using serverless functions or microservices can help scale your backend to handle many concurrent users.


## Usecases

### Can I create configurators with Needle Engine?

**Yes!** Needle Engine is exceptionally well-suited for building **interactive product configurators** for the web. 
        
Our workflow, leveraging powerful editors like **Unity and Blender**, allows you to set up complex product variations, material swaps, animations, and conditional logic visually. You can then easily connect these 3D configurations to your web UI, built with standard HTML/CSS/JS or frameworks like React, Vue, Svelte, or others.

Key strengths for configurators include:
-   Handling complex 3D scenes and asset variations efficiently.
-   Optimized performance for smooth interaction on the web.
-   Ability to integrate seamlessly into existing e-commerce platforms or websites.
-   Robust scripting capabilities (TypeScript/JavaScript) for custom logic.
-   Built-in supoort for AR on Android and iOS, allowing users to visualize products in their environment.

So yes, building sophisticated, performant product configurators is a core use case we designed Needle Engine to handle effectively.

### Can I make web games with Needle Engine?

**Yes**, you can definitely create games with Needle, specifically targeting the web platform. If you're familiar with building games in Unity or Blender, you'll find our workflow very natural.
        
You can leverage many familiar game development concepts:
-   Building interactive scenes and levels visually.
-   Animation systems (including state machines exported from Unity).
-   Scripting complex game logic using TypeScript or JavaScript.
-   Multi-user support for networked games.
-   Physics integration.

Needle Engine provide the core capabilities needed to build engaging games, educational content, promotional games, or other interactive experiences directly for browsers and spatial web platforms.

### Can I showcase my product with Needle Engine?

**Yes**, showcasing one or many products is a great use case for Needle Engine, especially if you need more than just basic model rotation.
        
While simple viewers can be achieved with tools like <model-viewer>, Needle Engine allows you to build much richer and more interactive experiences for users:
-   **High-fidelity visuals:** Leverage advanced materials, lighting, and shadows.
-   **Complex animations:** Showcase product features with intricate animations or exploded views.
-   **Interactivity:** Allow users to trigger animations, swap parts (like in a configurator), or interact with specific components.
-   **Performance:** Our optimization pipeline and **progressive loading** ensure even detailed models load quickly.
-   **AR Integration:** Easily add WebXR capabilities to view products in Augmented Reality.
-   **Interactive USDZ export:** Create engaging AR views for iOS Quick Look.

So, if you need to go beyond static display and create truly engaging, performant, and interactive product showcases on the web, Needle Engine is an excellent choice.

### Can I use Needle Engine for tradeshows or other areas with limited internet access?

**Yes!** Through Progressive Web App (PWA) capabilities, your Needle app can run even without internet, and even be installed on devices if needed.
         
 The typical workflow:
 1.  Create your app using Needle Engine.
 3.  Add the Needle PWA plugin.
 4.  On the presentation device (kiosk, tablet, PC), open the application's URL **once** while online. All assets will automatically be cached.
 5.  The device can now be taken offline. The PWA will run reliably from the local cache, providing a seamless experience. You can also install the PWA on the device – adding it to the home screen or desktop – for easier launching.
 
[**Learn More:** Creating a PWA for Needle Engine](https://engine.needle.tools/docs/html.html#creating-a-pwa)
[**In Depth:** What is a PWA (MDN docs)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
 

### Can apps made with Needle run without internet access?

**Yes**, apps made with Needle Engine can be configured to run offline by turning them into Progressive Web Apps (PWAs), or by embedding them in native frameworks like Flutter. 

With a single line of code, you can turn your app into a PWA, which allows it to be run offline and even be installed on devices. This is done by leveraging the browser's capabilities to cache assets and serve them locally – battle-tested technologies that most browsers have adopted. Service workers and the Cache API allow fine-grained control over what gets cached and when, so you can ensure that your app is always available, even without an internet connection.

Here's the concept:
1.  You enhance your Needle Engine web project with PWA capabilties. This adds a **Service Worker** and a **Web App Manifest**.
2.  When a user visits online for the first time, the Service Worker installs and caches the app's assets.
3.  On subsequent visits, even without internet, the Service Worker serves the cached files, enabling offline operation. The PWA can also be installed by users for easier access.
4. If needed, this PWA can be wrapped in a native app container (like Tauri, Electron, Capacitor or Trusted Web Apps) for distribution through app stores.

[**Learn More:** Creating a PWA for Needle Engine](https://engine.needle.tools/docs/html.html#creating-a-pwa)
[**Learn More:** PWABuilder for App Store distribution](https://www.pwabuilder.com/)


### Can I create Facebook Instant Games with Needle Engine?

**Yes!** Needle Engine is well-suited for building games for Facebook Instant Games. Our engine exports standard, performant web projects compatible with the platform's requirements, and we provide built-in support to streamline the process.

Our integration enables the following features:

*   **Adds the SDK:** Automatically adds script tags to add the Facebook Instant Games SDK.
*   **Automatic initialization:** Uses `FBInstant.initializeAsync()` and `FBInstant.startGameAsync()`.
*   **Loading progress:** Report loading progress using `FBInstant.setLoadingProgress(...)`.
*   **Manage configurations:** Creates or updates the required config files in your build output.

[**Learn more** about Facebook Instant Games](https://developers.facebook.com/docs/games/build/instant-games)


## Licensing and Compliance

### How do you handle data privacy and compliance (e.g. GDPR, CCPA)?

We take data privacy and compliance seriously. Our practices regarding data collection, usage, and user rights are detailed in our privacy policy. Key aspects for our compliance with GDPR and CCPA include:
-   **Data Minimization:** We strive to collect only the data necessary to provide and improve our services.
-   **User Rights:** We provide mechanisms for users to access, modify, or delete their data.
-   **Transparency:** Our privacy policy clearly outlines our data practices.

For specific details on data processing agreements (DPAs) or compliance related to your region, please review our Privacy Policy. Feel free to contact us if you have further questions.

[Privacy Policy](https://needle.tools/eula#privacy)
[Terms of Use](https://needle.tools/eula)


### Who owns the intellectual property (IP) I create using Needle Engine?

**You own the content and intellectual property that you create** using Needle Engine. Our End User License Agreement (EULA) grants you a license to use our software, but the applications, assets, code, and experiences you build belong to you, subject to the terms outlined in the EULA. We recommend reviewing the EULA for the specific legal definitions regarding ownership and licensing.

[End User License Agreement (EULA)](https://needle.tools/eula)

### Can I use Needle Engine for commercial projects?

Yes, you can use Needle Engine for commercial projects. However, please note that our free version is intended for non-commercial use only. For commercial projects, you will need to obtain a **Pro license**.

[Pricing page](https://needle.tools/pricing)


### Is Needle Cloud secure? How is my data handled?

We implement industry-standard security measures to protect the infrastructure hosting Needle Cloud and the data stored within it. This includes aspects like:
-   Secure connections (HTTPS).
-   Authentication and authorization controls.
-   Regular infrastructure monitoring, updates, and backups.
-   Best practices for data storage security.
    
While we provide a secure platform, you are also responsible for securing your own accounts (for example, using strong passwords) and managing permissions appropriately. For details on specific security practices or compliance certifications, please refer to our [official documentation](https://docs.needle.tools) or contact our enterprise support.

[Enterprise support: hi+enterprise@needle.tools](mailto:hi+enterprise@needle.tools)


### When does my monthly storage and usage reset?

Your monthly usage **resets on the 1st of each calendar month**. This applies to all usage categories: asset storage, website storage, asset optimizations, and AI tokens.

**How it works:**
- On the 1st of each month, your monthly usage counters start fresh.
- **Monthly limits** track how much you've uploaded or used during the current calendar month.
- **Total limits** track your overall cumulative storage (excluding deleted items) and never reset.
- Note that **deleting files does not free up monthly quota** — deletions only reduce your total storage usage. Monthly quota is only refreshed when the new month begins.

If you need more storage, upgrading your plan increases both monthly and total limits significantly. For example, the **Pro plan** provides 10 GB of monthly asset storage (vs. 100 MB on the free plan) and 250 GB total.

You can check your current usage and limits on your [account page](https://cloud.needle.tools/account) or your [team page](https://cloud.needle.tools/team).

[**See Plans and Upgrade**](https://needle.tools/pricing)


### What are the licensing options for commercial or enterprise use?

Needle Engine has different plans. You can get started for free, and keep using Needle for free for non-commercial use, with our logo visible. For commercial use, you'll need a **Pro license**. All licenses include Needle Cloud usage.
                    
For large teams or companies with custom licensing requirements, we recommend our **Enterprise plan**. This plan includes additional support (SLA), and agreements and features tailored to your needs.

[Pricing page](https://needle.tools/pricing)
[Enterprise support: hi+enterprise@needle.tools](mailto:hi+enterprise@needle.tools)

                    

### Are there specific features for Enterprise teams?

Yes, our Enterprise offerings often include features tailored for larger organizations, such as:
-   **Volume Licensing and dedicated support channels:** Scalable licenses and support channels of your choice.
-   **Custom Agreements:** Possibility for tailored Service Level Agreements (SLAs) or Data Processing Agreements (DPAs). Our default SLA is one day of support per month.
-   **Pipeline and Workflow Integration:** Support for integrating Needle Engine into your existing development and deployment pipelines.
-   **On-Premises Optimization:** Possibility for on-premises or private cloud deployment of Needle Engine and Needle Cloud, depending on your needs.

Please reach out to our sales or enterprise team to discuss your specific needs.

[Enterprise support: hi+enterprise@needle.tools](mailto:hi+enterprise@needle.tools)


### Can Needle Engine or Needle Cloud be self-hosted or run on-premise?

Needle Engine itself exports standard web projects that **can be self-hosted** on any web server infrastructure. 
    
Needle Cloud, our managed optimization and hosting service, is offered as a **cloud-based SaaS (Software as a Service) platform**. While standard plans run on our infrastructure, we understand some enterprises have specific requirements for on-premise or private cloud deployments. 

Please contact us to discuss possibilities and requirements for dedicated or self-hosted arrangements.

[Enterprise support: hi+enterprise@needle.tools](mailto:hi+enterprise@needle.tools)


### Where can I find the official legal terms (EULA, Privacy Policy)?

You can always find the most current versions of our legal documents on our website. Please refer to these links for the definitive terms:
-   [**End User License Agreement (EULA)**](https://needle.tools/eula) 
-   [**Privacy Policy**](https://needle.tools/eula/#privacy)
-   [**Terms of Use**](https://needle.tools/eula/#eula)

These documents govern your use of Needle Engine and related services.

### Do you offer special licenses for Education (students, teachers, schools)?

**Yes**, we strongly support the educational community! We offer **free or significantly discounted licenses** for eligible students, educators, and academic institutions for non-commercial, educational purposes. 
                    
Our goal is to make Needle Engine accessible for learning, teaching, and research in the exciting field of web-based 3D development. You can apply for an educational license through our website. Please include details about your institution and studies.

[Apply for an Education license](https://cloud.needle.tools/apply/edu)


### What about licenses for non-profit organizations or startups?

We offer **discounted licenses** for non-profit organizations and startups. If you are a non-profit organization and would like to use Needle Engine, please reach out to us to discuss your needs and eligibility.

[Apply for Non-Profit license](https://cloud.needle.tools/apply/nonprofit)  
[Apply for Startup license](https://cloud.needle.tools/apply/startup)

### What about licenses for Content Creators (YouTubers, Streamers, Bloggers)?

We love seeing creators showcase what's possible with Needle Engine! If you're using Needle Engine to create tutorials, reviews, technology demonstrations, or other content for platforms like YouTube, Twitch, or blogs, you might be eligible for our **Content Creator license**, even if your channel is monetized.

[Apply for Content Creator license](https://cloud.needle.tools/apply/creator)

