Skip to main content

The S3 type namespace

All public type aliases live in a single re-exported namespace:

import { S3 } from "solid-three"
type Position = S3.Vector3
type Controls = S3.Props<typeof OrbitControls>

The namespace is the re-export of src/types.ts and includes:

  • Renderer surfaceRenderer, RendererLike, ResolvedRenderer, Register
  • ContextContext, Viewport, CameraKind
  • Frame loopFrameListener, FrameListenerCallback, FrameListenerOptions
  • EventsThreeEvent, EventHandlers, CanvasEventHandlers, EventName
  • Three representationsRepresentation, Vector2, Vector3, Vector4, Color, Layers, Quaternion, Euler, Matrix3, Matrix4
  • Solid-three metadataMeta, Data, MapToRepresentation, Props
  • LoadersLoaderData, LoaderUrl
  • Utility helpersAccessorMaybe, PromiseMaybe, Constructor, InstanceOf, Overwrite, Prettify, ConstructorOverloadParameters

The same names are also reachable as named imports, e.g. import type { Context, Props } from "solid-three" — but the namespace form is what the examples in these docs use. A few of the most commonly needed ones — Register (augmentable via declare module "solid-three"), SupportedRenderer, and ResolvedRenderer — are re-exported at the top level too.

All top-level exports

Everything importable from solid-three, and where each is documented.

Components

ExportWhat it is
Canvas, CanvasPropsRoot component that mounts the renderer
Entity, createEntityWrap any three.js class as a component
createTBuild a pre-typed T.* component namespace
PortalRender a subtree under a different object
ResourceSuspense-aware async object loading

Hooks

ExportWhat it is
useThreeRead the renderer context
useFrameRun a callback on every frame
useLoader, loadLoad assets through cached loaders
usePropsApply solid-three props to an object

Utilities

ExportWhat it is
EventRaycaster, CursorRaycaster, CenterRaycasterPointer-event raycasting strategies
autodisposeTie an object's lifetime to its component
meta, getMeta, hasMeta, $S3CRead and write per-object metadata

Types

ExportWhat it is
S3Namespace of every public type (above)
Register, Renderer, ResolvedRendererRenderer typings, re-exported for convenience

Last updated: 6/8/26, 11:20 AM

solid threeA SolidJS renderer for three.js — learn by reading.
Community
github