Livelink React
Livelink.React is the easiest way to integrate 3dverse into a React application. It wraps Livelink.js and manages session lifecycle, input handling, and rendering surfaces so you can work with declarative components and hooks instead of imperative setup code.
Installation
Install the React package in your application:
npm install @3dverse/livelink-react
Getting Started
This minimal example renders a scene to a full-screen canvas with a controllable camera.
import { Livelink, Canvas, Viewport, CameraController, useCameraEntity } from "@3dverse/livelink-react";
function App() {
return (
<Livelink
sceneId="6391ff06-c881-441d-8ada-4184b2050751"
token="public_i1-8nmpu9dTKaQvl"
>
<AppLayout />
</Livelink>
);
}
function AppLayout() {
const { cameraEntity } = useCameraEntity();
return (
<Canvas width="100vw" height="100vh">
<Viewport
cameraEntity={cameraEntity}
style={{ width: "100%", height: "100%" }}
>
<CameraController />
</Viewport>
</Canvas>
);
}
Livelink creates and manages the session (no manual `Livelink.start`).useCameraEntity() returns a camera entity ready to attach to a viewport.CameraController enables default camera interaction.Other components
DOM3DOverlay — Render a 3D overlay.
DOMEntity — Render a DOM element at the position of an entity.
DOM3DElement — Render a DOM element at the position of an entity.
Recorder — Record a video from a canvas.
Hooks
The React bindings expose hooks for common tasks.
Example
import { useEntity } from "@3dverse/livelink-react";
function EntityNameInput({ euid }: { euid: UUID }) {
const { entity } = useEntity({ euid });
const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
entity.name = e.target.value;
};
return <input type="text" value={entity?.name ?? "Unknown"} onChange={handleChange} />;
}
useEntity() subscribes to an entity’s components and state,All hooks
useClients()— Read the connected clients in the session.
useEntity()— Subscribe to multiple entities’ components and state.
useEntities()— Subscribe to an entity’s components and state.
useSceneSettings()— Read the current scene settings.