sandai-react

sandai-react

React components and utilities for the Sandai 3D AI Characters.

To use sandai-react, install it via npm:

npm install sandai-react

A React component that renders a 3D AI character using Sandai.

Prop Type Description
url string The base URL for the Sandai AI 3D character chat interface.
onLoad (client: SandaiClient) => void Callback function triggered when the SandaiClient is loaded.
vrmUrl string (optional) URL for the VRM model to be loaded as the 3D character.
voiceName VoiceNames (optional) Name of the voice to be used by the 3D character.
showControls boolean (optional) Determines if controls should be displayed in the interface.
import { AI3DCharacter } from "sandai-react";

const handleLoad = (client) => {
console.log("Sandai Client Loaded", client);
};

<AI3DCharacter
url="https://sandai.org/chat"
onLoad={handleLoad}
vrmUrl="https://example.com/model.vrm"
voiceName="ruri"
showControls={true}
/>

A React component that renders interactive documentation for functions exposed by the SandaiClient instance.

Prop Type Description
client SandaiClient The SandaiClient instance retrieved from the onLoad callback of AI3DCharacter.
import { AI3DCharacter, AI3DCharacterDocs } from "sandai-react";
import { useState } from "react";

const App = () => {
const [client, setClient] = useState(null);

return (
<>
<AI3DCharacter
url="https://sandai.org/chat"
onLoad={setClient}
showControls
/>
{client && <AI3DCharacterDocs client={client} />}
</>
);
};

A reusable form component that dynamically generates input fields based on a schema and executes a function when submitted.

Prop Type Description
func Function The function to be tested, receiving input values as arguments.
schema SchemaType[] An array of schema objects defining the function parameters.
import { FunctionTester } from "sandai-react";

const myFunction = (name, age) => {
console.log(`Name: ${name}, Age: ${age}`);
};

const schema = [
{ id: "name", type: "text", label: "Name" },
{ id: "age", type: "number", label: "Age" }
];

<FunctionTester func={myFunction} schema={schema} />;

Contributions are welcome! If you have suggestions or find issues, feel free to open a pull request.

This project is licensed under the MIT License. See the LICENSE file for details.