Developer Security Suite

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.

System Status Production Ready
Encryption
AES-256-GCM
Supported Formats
GLTF / GLB
Ecosystem
Three.js / WebGL
Integration
NPM / CDN

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:

  1. Encryption Phase (CLI / Build Tool): Developer feeds model.glb to the Secure3JS CLI, generating model.s3js with encrypted geometry chunks and signature metadata.
  2. Handshake Phase (Licensing Server): Client requests temporary decryption authorization tokens based on domain origin and session credentials.
  3. Rendering Phase (Three.js Client): The SecureGLTFLoader fetches 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

bash
npm install @ultrolon/secure-threejs three

2. Encrypt your 3D Assets

bash
npx secure3js encrypt ./assets/character.glb --out ./public/character.s3js --key YOUR_ENCRYPTION_KEY

3. Load & Decrypt in Three.js

javascript
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.