Loading...
Loading...
Build, explain, and modify @react-three/start apps that use file-based React Three Fiber scene and DOM composition. Use when working in a react-three-start project, when the user mentions @react-three/start, react-three-start, R3F app structure, .scene.tsx/.dom.tsx files, Scene/Dom slots, wrappers, start.config.ts, or the react-three-start/r3s CLI.
npx skill4agent add pmndrs/react-three-start react-three-start@react-three/startsrc/src/
cube.scene.tsx # rendered inside <Canvas>
lights.scene.tsx # rendered inside <Canvas>
hud.dom.tsx # rendered in the DOM overlay
start.config.ts # optional framework configreact-three-start devreact-three-start buildreact-three-start previewr3snpx @react-three/start create my-appsrc/**/*.scene.tsxsrc/**/*.dom.tsxpointer-events: nonepointerEvents: 'auto'SceneDom@react-three/start*.scene.tsx*.dom.tsx<Scene />// src/00-xr.scene.tsx
import { Scene } from '@react-three/start'
import { Physics } from '@react-three/rapier'
export default function PhysicsWrapper() {
return (
<Physics>
<Scene />
</Physics>
)
}00-xr.scene.tsx # outer wrapper
10-physics.scene.tsx # inner wrapper
cube.scene.tsx # leaf scene entry<Dom /><Scene /><Scene />// start.config.ts
export default {
injectCanvas: false,
title: 'My R3F app'
}// src/app.dom.tsx
import { Canvas } from '@react-three/fiber'
import { Scene } from '@react-three/start'
export default function App() {
return (
<Canvas shadows camera={{ position: [0, 2, 6], fov: 45 }}>
<Scene />
</Canvas>
)
}start.config.tsinjectCanvastitlevitevitereactThreeStart()start.config.tsvite.config.ts*.scene.tsx*.dom.tsxSceneDom