threebridge
v0.1.0
Published
Small adapters between Mosa WebGL / 3D primitives and Three.js.
Maintainers
Readme
Threebridge
A small, explicit bridge from portable 3D descriptions to Three.js.
Threebridge materializes Web3D Kit descriptors as Three.js runtime objects. It keeps scene descriptions portable while leaving rendering, asset loading, and resource ownership explicit.
Install
npm install three threebridge web3d-kitthree is a peer dependency: applications choose and own their Three.js
version. threebridge does not bundle it.
import { mesh, planeGeometry, shaderMaterial } from "web3d-kit";
import { createThreeObject } from "threebridge";
const object = createThreeObject(
mesh({
geometry: planeGeometry({ width: 2, height: 2 }),
material: shaderMaterial({ vertexShader, fragmentShader }),
}),
);
threeScene.add(object);Architecture
shader-runtime webgl-kit
│ │
└─────────┬────────┘
▼
web3d-kit
│
▼
threebridge
│
▼
threeshader-runtime owns shared animation scheduling and webgl-kit owns
low-level WebGL plumbing. web3d-kit owns portable descriptions;
threebridge materializes them as Three.js objects without taking ownership
of shader source or asset loading.
Supported conversions
- vectors, transforms, bounds, scenes, groups, meshes, and cameras
- plane, box, sphere, and simple position/index buffer geometry
- basic, standard, and shader materials
- scalar and vector uniforms
- caller-owned image/canvas textures, with explicit wrapping/filter options
Lifecycle
Use disposeGeometry, disposeMaterial, disposeTexture, or
disposeObjectTree explicitly. disposeObjectTree disposes mesh geometry and
materials; textures remain caller-owned because they are commonly shared.
