Secure3JS: Protect 3D Assets
Military-grade AES-256 asset encryption and dynamic in-memory decryption designed to prevent 3D model scraping, unauthorized GLTF/GLB extraction, and IP theft in WebGL applications.
What is Secure3JS?
Secure3JS is an end-to-end asset protection framework developed by Ultrolon Studio specifically engineered for WebGL and Three.js environments.
Modern 3D websites, games, and architectural configurators transmit rich .gltf and .glb models to client browsers. In normal setups, these assets are fetched via plain HTTP requests where any browser inspection tool, network tab, or automated scraper can effortlessly save and clone high-value 3D assets.
Secure3JS solves this vulnerability through an optimized two-stage pipeline: an offline CLI encryptor that seals 3D assets into proprietary protected binary containers, and a high-performance client loader that streams, validates, and decrypts assets directly into WebGL memory without touching the browser disk or cache.
Why 3D Asset Security Matters
Unlike 2D images which can be watermarked or compressed, 3D models contain proprietary topology, rigging hierarchies, texture atlases, and geometry that represent hundreds of hours of creative labor and high financial investment.
Zero-Knowledge Client Infiltration
Without protection, anyone can open browser DevTools, check the Network tab, filter for .glb, and download the full raw 3D model in seconds. Secure3JS ensures that only authenticated clients with valid license tokens can decipher the model payload.
Core Features
AES-256-GCM Encryption
Industry standard authenticated symmetric encryption ensuring zero tampering and cryptographic integrity across all model chunks.
In-Memory Stream Decryption
Models are decrypted dynamically into Uint8Array buffers and piped directly into Three.js loaders without storing unencrypted files on disk.
Domain Whitelisting
Bind encrypted assets to authorized domains. If the file is downloaded or hotlinked by an unauthorized domain, decryption immediately aborts.
Minimal Performance Overhead
Optimized with Web Workers and WebAssembly cryptographic routines to decrypt multi-megabyte 3D models in milliseconds with 60+ FPS.
Architecture & Workflow
The Secure3JS security pipeline is split into three seamless phases:
- Encryption Phase (CLI / Build Tool): Developer feeds
model.glbto the Secure3JS CLI, generatingmodel.s3jswith encrypted geometry chunks and signature metadata. - Handshake Phase (Licensing Server): Client requests temporary decryption authorization tokens based on domain origin and session credentials.
- Rendering Phase (Three.js Client): The
SecureGLTFLoaderfetches the encrypted container, performs in-memory decryption, and attaches the resulting Scene Graph directly to the WebGL viewport.
Quick Start & Code Snippets
Integrating Secure3JS into your existing Three.js pipeline requires just a few lines of code:
1. Install via NPM
npm install @ultrolon/secure-threejs three
2. Encrypt your 3D Assets
npx secure3js encrypt ./assets/character.glb --out ./public/character.s3js --key YOUR_ENCRYPTION_KEY
3. Load & Decrypt in Three.js
import * as THREE from 'three';
import { SecureGLTFLoader } from '@ultrolon/secure-threejs';
// Setup standard Three.js Scene
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ antialias: true });
document.body.appendChild(renderer.domElement);
// Initialize Secure Loader
const secureLoader = new SecureGLTFLoader({
licenseKey: 'S3JS-PRO-LICENSE-TOKEN',
authEndpoint: 'https://secure3js.ultrolonstudio.com/api/v1/auth'
});
// Load encrypted container
secureLoader.load(
'/models/character.s3js',
(gltf) => {
scene.add(gltf.scene);
console.log('Secure model successfully decrypted and rendered!');
},
(progress) => {
console.log(`Loading: ${(progress.loaded / progress.total * 100).toFixed(1)}%`);
},
(error) => {
console.error('Decryption failed or invalid domain license:', error);
}
);
Technical Specifications
| Specification | Value / Capability |
|---|---|
| Cryptographic Cipher | AES-256-GCM / ChaCha20-Poly1305 |
| Three.js Compatibility | r128 through r170+ |
| Supported Browsers | Chrome, Firefox, Safari, Edge, Opera (Desktop & Mobile) |
| Performance Latency | < 15ms overhead on 50MB model files |
| Asset Formats | GLTF 2.0 (.gltf, .glb) with embedded/external textures and Draco compression |
Experience Secure3JS Live
Explore interactive 3D model demos, test asset encryption benchmarks, and check out license tiers directly on the official Secure3JS website hosted by Ultrolon Studio.