Skip to main content

ThreeJsPresence

ThreeJsPresence automatically implements Avatars, Mouse Pointers and Presence Controls into a Three.js application.

How to use

To initialize the ThreeJsPresence component, you can follow our quickstart guide.

Usage

import { ThreeJsPresence } from "@superviz/react-sdk";

function Room() {
return <ThreeJsPresence scene={scene} camera={camera} player={player} />;
}

Properties

NameTypeDescription
sceneSceneRequired. The ThreeJS scene object, is already loaded.
cameraCameraRequired. The ThreeJS scene’s camera, previously created.
playerObject3DRequired. The 3D object you want your avatar to be added to. For first-person experiences, you can use camera objects here.
isAvatarsEnabledbooleanOptional Defines whether avatars should be enabled or not.

Default value: true
isLaserEnabledbooleanOptional Defines whether laser pointers should be enabled or not.
If isAvatarsEnabled is set to false, then isLaserEnabled will also be false.

Default value: true
isNameEnabledbooleanOptional Defines whether the name above the avatars should be enabled or not.

Default value: true
isMouseEnabledbooleanOptional Defines whether Mouse pointers should be enabled or not.

Default value: true
avatarConfigObjectOptional The configuration object for the avatar. See the AvatarConfig section for more details.

Hooks

useThree

follow

function - (participantId?: string) => void

When called with a participant ID as an argument, this function enables other participants to follow the specified participant in the 3d world. If no ID is provided, the following feature is disabled.

function Room() {
const { follow } = useThree();

function followUser() {
follow("participant-id");
}

function unFollow() {
follow();
}

return (
<>
<button onClick={followUser}>Follow user</button>
<button onClick={unFollow}>Unfollow</button>
</>
);
}

goto

function - (participantId: string) => void

When invoked with a participant ID as an argument, this function allows other participants to instantly navigate to the specified participant's position in the 3D space, enabling easy and quick location of participants.

function Room() {
const { goTo } = useAutodesk();

function goToUser() {
goTo("participant-id");
}

return (
<>
<button onClick={goToUser}>Go to user</button>
</>
);
}

Types Definition

AvatarConfig

Type: object

An object describing the configuration for the avatar, like scale, position, and laser configuration.

NameTypeDescription
heightnumberRequired >The height you want your avatar to be positioned from the ground, in pixels.
scalenumberRequired The scale you want your avatar to be rendered, in percent 0 to 1.
laserOriginnumberRequired The origin position of your laser beam in relation to your avatar model.

Example:

avatarConfig: {
height: 1.6,
scale: 1,
laserOrigin: {
x: 0,
y: 0,
z: 0
}
}

Position

Type: object

Represents the origin position of your laser beam in relation to your avatar model.

NameTypeDescription
xnumberRequired Represents the x-axis (horizontal) position.
ynumberRequired Represents the y-axis (vertical) position.
znumberRequired Represents the z-axis (depth) position.

Example:

laserOrigin: {
x: 0,
y: 0,
z: 0
}