Published October 15, 2026 | Version v1

Extensible Scalable 3D - Describing three-dimensional web scenes by parameters: the ES3D format and its reference implementation

Authors/Creators

Description

Abstract
Let us start by looking at the web today. 3D (three-dimensional) content is formatted as 
tessellated triangles as standard. The exporter creates fixed geometry, and raising quality or 
adding copies of an object substantially increases file size, which is suitable for 3D printing or 
professional rendering, but hardly necessary for websites. As long as the design looks nearly 
identical, e.g. each difference is less than a pixel, the render is satisfactory. This paper is an early 
introduction to ES3D (Extensible Scalable 3D), a declarative scene format that is inspired by the 
2D SVG (Scalable Vector Graphics) format. The ES3D file format uses SVG-style paths such as 
extrude, revolve, swept and involute gears, repetition and seeded procedural placement stored as 
parameters and the file is converted into triangular mesh on the client’s side. The level of detail is 
a chordal-error bound, meaning a renderer draws the roughest mesh that fits within one pixel, 
whilst procedural placement is identical between devices, so each client sees an identical instance. 
This paper sets out to define the format, its syntaxes and reference implementations. This includes 
a JavaScript reader which uses WebAssembly kernels, WebGPU and WebGL2 renderers, and a 
persistent geometry cache. Across nine benchmark scenes with identical triangles, in the six 
procedural scenes beyond a single cube, minified ES3D documents of 0.6–1.2 kB (gzip) replace 
instanced glTF files of 83–685 kB, making them roughly 100 to 790 times smaller. Without 
procedural structure, the scanned mesh remains close to quantised glTF in size (703.5 kB against 
743.7 kB).

Key findings

Parameter-dependent geometry is reliant on the level of scene complexity, not triangle 
count. In the mentioned benchmarks, 598 bytes hold a forest of 7,401 instances and almost two million 
triangles, whilst a stress test of 39 million triangles is 581 bytes. On scenes built from shapes, paths and 
repetition, ES3D files are multiple orders of magnitude smaller than glTF and OBJ, which, with proper 
setup, can reduce bandwidth required on origin servers, but, as a consequence, the user’s device bears 
the rendering load. On the two phones tested, ES3D drew the two largest scenes 2.2–3.5 times faster than 
three.js drew instanced glTF, but mesh bodies like a scan experienced little to no benefits compared to 
quantised glTF files. ES3D is not a replacement for modern 3D file formats, but is better in specific use 
cases.

Files

ES3D-wp.pdf

Files (1.3 MB)

Name Size
md5:349c5fa32fc736c62b5bf67b566a4a5c
1.3 MB Preview Download

Additional details

Related works

Is documented by
Software: https://github.com/bitilia/es3d (URL)
Is supplemented by
Other: https://es3d.org/ (URL)

Software

Repository URL
https://github.com/bitilia/es3d
Programming language
JavaScript , C
Development Status
Concept