Needle Cloud
Overview
Needle Cloud is an online service. It helps you store, manage, and share 3D assets and apps on the web. A variety of file formats are supported, including glTF, USD, FBX, VRM, and more. Spatial web apps made with Needle can be deployed to the cloud directly from the Unity integration, and via command line (CLI). The Blender integration is coming at a later point; you can use the CLI in the meantime.
Visit Needle Cloud to get started.
Features
Host spatial web apps
Apps made with Needle can be deployed to the cloud directly from our engine integrations. This allows you to give your team and customers public access to apps easily, without having to set up your own server. If needed, you can protect apps with a password.Manage 3D assets privately and securely
Easily upload and organize your 3D files. Thanks to our fast CDN (content delivery network), your files are stored securely and can be accessed quickly from anywhere in the world. Needle Cloud is not a marketplace, and not a social network. It is designed for agencies, studios and creators to manage their assets privately and securely.Optimize 3D assets from a variety of formats
Automatically compress your files to reduce their size while maintaining visual quality. This makes your files load faster, and saves bandwidth and memory on user's devices.Sharing and Version Control
Links to your files can be shared with others and used directly in your projects. You can upload new versions of assets and apps. Individual versions can be labelled, which allows for flexible review workflows: for example, you can label a version asmain
orexperimental
. You can also revert labels back to a previous version if needed.Automation and Pipeline Tools via CLI
Theneedle-cloud
CLI (command line interface) makes it easy to automate uploading and optimizing files. This is useful for integrating Needle Cloud into your existing pipeline, or for automating the upload of large numbers of files.License Management
Licenses for Needle Engine for solo creators and teams are managed through Needle Cloud. This ensures only authorized users can access your files and projects. Contact us for Enterprise and Edu licenses.
Deploy from Unity
Needle Cloud is integrated into the Unity Editor. This allows you to deploy your apps directly from Unity to Needle Cloud. You can also upload and download assets from Needle Cloud directly in Unity.
Install the Unity integration, if you haven't already.
See this page for more info.Add the
Export Info
component to your scene.
This component is used to configure the export settings for your app.
You can use the menu itemGameObject > Needle Engine > Add Export Info
or create a new scene from a Needle template via the menu itemFile > New Scene
.Click on
Upload to Needle Cloud
.
This will build your app, and upload it to Needle Cloud. You can also choose to deploy to a specific team and project. The upload name of the project, visible next to the button, is saved in the scene. Future uploads will use the same upload name, and all uploaded versions will be grouped together on the Needle Cloud website.
Deploy from the CLI
Needle Cloud provides a command line interface (CLI) that allows you to manage your assets and deploy your applications efficiently. You can use the CLI to automate tasks and integrate Needle Cloud into your existing workflows.
The CLI is available as an npm package, which means that you need to have Node.js installed on your machine. You can check if you have Node.js installed by running the following command in your terminal:
node -v
If you don't have Node.js installed, you can download it from the Node.js website.
You can install the needle-cloud
CLI package globally or use it via npx
. This allows you to run the CLI commands without having to install it globally.
Use the npx command (recommended)
npx needle-cloud deploy '/dist' --team 'My team' --name 'some-project-id'
Or install needle-cloud globally
A global installation allows use to use the CLI from anywhere on your system. To install the CLI globally, run the following command in your terminal:npm install -g needle-cloud
Now, you can use the
needle-cloud
command in your terminal:needle-cloud deploy '/dist' --team 'My team' --name 'some-project-id'
Automated Deployments
To deploy from Github Actions or Stackblitz you can provide an access token as --token <access_token>
. Access tokens can be created on your team page on Needle Cloud.
CLI Help
Use help
to see all available commandline options and help to individual commands.
# see all available options
npx needle-cloud help
# get help for a specific command e.g. deploy
npx needle-cloud help deploy
Deployment URLs
When deploying to Needle Cloud, each upload gets a unique URL. You can either share a link to a specific version, or to a labeled version with your team or clients.
In the following example, we have an app that has so far been deployed twice. Each deployment gets a specific URL, also known as a pinned URL since it's pinned to a specific version.
- collaborativesandbox-zubcks1qdkhy-1qdkhy.needle.run
This is the first version that was uploaded. - collaborativesandbox-zubcks1qdkhy-2e2spt.needle.run
This is the second version that was uploaded.
The latest deployment is always available at the following URL. This URL is useful for sharing with your team, as it always points to the most recent version of the app. Another common name for this version is dev or canary.
- collaborativesandbox-zubcks1qdkhy-latest.needle.run
This URL automatically shows the new version when you upload a new version of the app.
The main deployment is useful for sharing with clients, as it always points to the most recent version of the app that you promoted. Other common names for this version are production, stable, or live.
- collaborativesandbox-zubcks1qdkhy.needle.run
This URL does not change when you upload a new version. It will only change when you explicitly promote a new version to main.
Typically, you upload a new version, review it, and then decide whether you want to promote it to main.
The Needle Cloud website shows all deployed versions of the app, including the latest and main versions. Labels can be moved by clicking on â‹® and selecting Set main label or Remove main label.
Supported 3D Formats
glTF and GLB Example
The glTF format is the most widely supported format for 3D on the web. It is a lightweight format that can store 3D models, animations, and textures. GLB files are binary versions of glTF files, where all data is stored in a single file. glTF supports advanced compression techniques like Draco, KTX2, and Meshopt, which are fully supported by Needle Cloud and Needle Engine.OpenUSD
USD is a powerful format for 3D data interchange. It is known for its use in the film and VFX industry, and is gaining popularity in the game industry. Needle Cloud supports USDZ and USD files natively through our work on USD-WASM, and also converts USD files to glTF for further processing and optimization.FBX
FBX has been a popular format for 3D data interchange for many years, but is lacking a number of modern features like PBR materials and extensions. Needle Cloud converts FBX files to glTF for further processing and optimization.VRM
VRM is a format for humanoid avatars. It is based on glTF with additional constraints through the use of glTF extensions. Needle Cloud supports VRM files natively, and can optimize them like other glTF files, including complex VRM extensions like phonemes, toon shading and dynamic bones.OBJ
OBJ is a simple text-based format for 3D models. It supports basic materials through MTL files, animations, and hierarchies of objects. Needle Cloud converts OBJ files to glTF for further processing and optimization.
Use glTF or USD when possible
We recommend glTF and USD as the primary formats for 3D data interchange. They are widely supported, have modern features and a good material model.
Cloud Assets
Uploading Assets
You can upload your files easily by dragging them into the website or selecting them from your computer. Non-glTF files are automatically converted to glTF for further processing, but the original files are kept for download and web viewing.
Asset Versions
When you visit the Edit Page of an asset, you can see all versions that were uploaded so far by you or your team. You can also tag versions to mark them as "main" or "experimental". "Latest" is the default tag for the most recent version.
Sharing Links to Assets
You can create links to share specific files or tagged files with your team or clients. Tagged links will automatically update when you move the tag – so you can share a "main" link once and keep updating the file without having to send a new link.
Using Cloud Assets in Needle Engine
Files stored in Needle Cloud can be brought directly into Needle Engine projects easily. The Needle Cloud Asset
component takes a link to an asset, and loads it at runtime. This allows you to keep your project size small and load assets on demand that can still be updated in the cloud.
Use Progressive Loading where possible
Assets stored on Needle Cloud are automatically optimized for ideal runtime usage using our Progressive Loading technology. For each mesh and texture, multiple level-of-detail versions are generated, and only the parts of the asset that are needed are loaded at runtime.
This save a lot of bandwidth and memory (typically 90% or more compared to loading the full asset).
Embedding the Cloud Viewer on Your Website
A fast way to bring 3D to your own website is to embed the Needle Cloud viewer. To do so, go to an asset's Edit Page and click on Embed. You can then copy the iframe
code snippet and paste it into your website.
Embedding specific versions
You can also embed the viewer with a direct link to the asset, or with a specific tag. This allows you to update the asset on Needle Cloud without having to update the embed code on your website.
Embedding in other frameworks
The following embed options are available:
Needle Cloud Viewer
Use theiframe
code snippet to embed the Needle Cloud viewer on your website.Needle Engine
Use the provided code snippet to embed Needle Engine on your website as web component.model-viewer
The model-viewer project provides a web component for rendering simple, non-interactive 3D models in the browser.three.js
If you're familiar with three.js, you can use the provided code snippet as a starting point for a three.js app that supports Needle Progressive Loading and efficiently loads files from Needle Cloud.React-Three-Fiber
If you're using React-Three-Fiber, you can use the provided code snippet as a starting point for a project that supports Needle Progressive Loading and efficiently loads files from Needle Cloud.Unity
If you're using Unity, you can integrate Needle Cloud assets directly into your projects using the Needle Cloud Asset component for seamless loading and optimization.
Using Cloud Assets with other engines like Unity or Unreal
There are several ways to use assets stored on Needle Cloud in other engines like Unity or Unreal.
Download and Import
You can download the asset and import it into your project.Direct Link
You can use the direct link to the asset in your project. This way, you can update the asset on Needle Cloud and it will automatically update in your project. Which link to use depends on the engine and its glTF capabilities:Support for glTF with Progressive Loading:
Use theProgressive-World
orProgressive-Product
link. See npm:@needle-tools/gltf-progressive for more information about progressive loading and how to enable it for your engine.Support for glTF with Draco and KTX2: Use the
Optimized
link.Support for glTF, but no compression extensions:
Use theUpload
(for gltf/glb uploads) orConverted
(for other uploads) link.
Needle Cloud Asset Component
If you are using Needle Engine, you can use theNeedle Cloud Asset
component to load assets at runtime. It will automatically choose the best link for your platform and load the asset with Progressive Loading. This is also supported at runtime in Unity Builds.
CLI for Assets
The command line interface (CLI) for Needle Cloud allows automating file uploads and compression. The CLI can be used as part of a build step (replacing an asset with an optimized version), or as a standalone tool (for batch processing of files).
See npm:needle-cloud for more information about the CLI and how to use it.
FAQ
What is Needle Cloud?
It’s an online service to upload, compress and share 3D assets and scenes.How do I upload assets to Needle Cloud?
You can upload files by dragging them onto the website, or by uploading them directly from supported integrations. If you have many files, you can use the CLI (command line interface) or the API (application programming interface).How do I download optimized files from Needle Cloud?
You can download files from the website. Click onShare
and thenDownload
. You can also use the CLI to download files.Can I share my files with others?
Yes, you can create links to share your files. Links can either be direct download links, or links to the Needle Cloud viewer.Is there a limit to file sizes?
Upload limits depend on your plan. Check your account details for more info.Can Needle Cloud files be used with other tools?
Yes, you can use your files in other programs by exporting them as glTF. USD export is coming at a later point.What happens if I run out of storage space?
You might need to upgrade your plan or delete old files to make room.