Observed since 20 Oct, 21:42 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
WebGL 3D library for interactive scenes — scene graph, materials, lights, loaders, post-processing, and more
A WebGL library for building interactive 3D scenes in the browser.
9th.js gives you a scene graph, cameras, meshes, lights, materials, loaders, and controls — so you can render 3D content with a clear, object-oriented API and ship it to the web.
Maintained by digitalcloud.
Scene, Object3D, Mesh, hierarchy, transforms (Euler + quaternion)BufferGeometryMeshBasicMaterial, MeshStandardMaterial, and related)Raycaster + Mesh.raycastInstancedMesh for batched drawsRenderTarget + composer-friendly renderer APIsOrbitControls for explore / inspect UIsnpm install 9th.js
yarn add 9th.js
pnpm add 9th.js
import {
WebGLRenderer,
Scene,
PerspectiveCamera,
BoxGeometry,
MeshBasicMaterial,
Mesh
} from '9th.js';
const canvas = document.querySelector('#canvas');
const renderer = new WebGLRenderer({ canvas, antialias: true });
const scene = new Scene();
const camera = new PerspectiveCamera(60, innerWidth / innerHeight, 0.1, 100);
camera.position.set(0, 1.5, 4);
const cube = new Mesh(
new BoxGeometry(1, 1, 1),
new MeshBasicMaterial({ color: '#4fc3f7' })
);
scene.add(cube);
function frame() {
requestAnimationFrame(frame);
cube.rotation.y += 0.01;
renderer.setSize(innerWidth, innerHeight);
camera.aspect = innerWidth / innerHeight;
camera.updateProjectionMatrix();
renderer.render(scene, camera);
}
frame();
import {
WebGLRenderer, Scene, PerspectiveCamera,
BoxGeometry, MeshStandardMaterial, Mesh,
AmbientLight, DirectionalLight, OrbitControls
} from '9th.js';
const canvas = document.querySelector('#canvas');
const renderer = new WebGLRenderer({ canvas, antialias: true });
const scene = new Scene();
const camera = new PerspectiveCamera(60, innerWidth / innerHeight, 0.1, 100);
camera.position.set(2, 2, 4);
scene.add(new AmbientLight(0xffffff, 0.35));
const sun = new DirectionalLight(0xffffff, 1.2);
sun.position.set(3, 5, 2);
scene.add(sun);
scene.add(new Mesh(
new BoxGeometry(1, 1, 1),
new MeshStandardMaterial({ color: '#4fc3f7', metalness: 0.2, roughness: 0.4 })
));
const controls = new OrbitControls(camera, canvas);
function frame() {
requestAnimationFrame(frame);
controls.update();
renderer.setSize(innerWidth, innerHeight);
camera.aspect = innerWidth / innerHeight;
camera.updateProjectionMatrix();
renderer.render(scene, camera);
}
frame();
<script src="https://unpkg.com/9th.js@1.0.7/dist/umd/9th.umd.min.js"></script>
Also on jsDelivr: https://cdn.jsdelivr.net/npm/9th.js@1.0.7/dist/umd/9th.umd.min.js
Live gallery (after npm run build, serve the repo root):
examples/ → open examples/index.html
| Hello cube | Lit + orbit |
|---|---|
![]() | ![]() |
Unlit MeshBasicMaterial | PBR + lights + OrbitControls |
| Primitives | Materials |
|---|---|
![]() | ![]() |
| Box, sphere, cylinder, cone | Metalness / roughness row |
| Lights | GLTF |
|---|---|
![]() | ![]() |
| Ambient + directional + points | GLTFLoader → scene |
npm run build
npx serve .
# open http://localhost:3000/examples/
MIT © digitalcloud
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.7Registry latest | 24 Jul 2026 | 31 | |
| 1.0.6 | 20 Jul 2026 | 31 | |
| 1.0.5 | 19 Jul 2026 | 31 | |
| 1.0.4 | 19 Jul 2026 | 31 | |
| 1.0.3 | 19 Jul 2026 | 31 | |
| 1.0.2 | 19 Jul 2026 | 31 | |
| 1.0.1 | 19 Jul 2026 | 31 | |
| 1.0.0 | 19 Jul 2026 | 31 | |
| 0.1.26 | 15 Nov 2025 | 36 | |
| 0.1.25 | 15 Nov 2025 | 36 | |
| 0.1.24 | 11 Nov 2025 | 36 | |
| 0.1.23 | 11 Nov 2025 | 36 | |
| 0.1.22 | 11 Nov 2025 | 36 | |
| 0.1.21 | 11 Nov 2025 | 36 | |
| 0.1.20 | 11 Nov 2025 | 36 | |
| 0.1.19 | 11 Nov 2025 | 36 | |
| 0.1.18 | 11 Nov 2025 | 36 | |
| 0.1.17 | 11 Nov 2025 | 36 | |
| 0.1.16 | 11 Nov 2025 | 36 | |
| 0.1.15 | 11 Nov 2025 | 36 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:42 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:d80db89692cb0c006a83f5740c1583fa10ae013e94a50c5599dc4641c7f7be06