Home

threejs

Three.js is a cross-browser JavaScript library that enables the creation and display of animated 3D graphics in web browsers using WebGL. It provides a high-level API that abstracts the low-level WebGL details, allowing developers to construct 3D scenes with objects, lights, materials, and cameras without writing raw shaders. The library was created by Ricardo Cabral, known as Mr.doob, and released in 2010 with ongoing development by a global community. Three.js is distributed under the MIT license.

Its core concepts include a scene graph, where objects such as meshes and lights live; cameras for

Three.js includes numerous helpers and controls, like OrbitControls, TrackballControls, and PointerLockControls, as well as loaders for

Three.js is not a full game engine; it focuses on rendering and visualization, offering a balance of

viewing
the
scene
(PerspectiveCamera
and
OrthographicCamera);
and
renderers
(primarily
WebGLRenderer)
that
draw
the
scene
to
a
canvas.
It
offers
a
wide
range
of
built-in
geometries
and
materials,
including
physically
based
materials
such
as
MeshStandardMaterial
and
MeshPhysicalMaterial,
and
supports
textures,
shading,
shadows,
and
post-processing
via
EffectComposer.
The
library
also
provides
utilities
for
animation,
time
management,
and
interaction.
3D
formats
such
as
GLTF/GLB,
OBJ,
and
FBX.
The
GLTFLoader
and
DRACOLoader
enable
efficient
model
loading
with
compressed
meshes.
It
can
be
extended
with
a
broad
ecosystem
of
plugins,
post-processing
effects,
and
utilities,
and
is
commonly
distributed
via
npm
or
loaded
from
a
CDN.
power
and
approachability
for
developers.
It
is
widely
used
for
interactive
product
demonstrations,
architectural
visualizations,
data
visualization,
and
educational
projects,
supported
by
an
active
community
that
contributes
tutorials,
plugins,
and
extensions.