import { Canvas } from '@react-three/fiber' import { OrbitControls } from '@react-three/drei' import { useState } from 'react' import { MorphingTube } from './Scene' export const App = (): React.ReactElement => { const [seed, setSeed] = useState(0) const [animating, setAnimating] = useState(true) const [speed, setSpeed] = useState(1) const [manualT, setManualT] = useState(0.5) const [splitRatio, setSplitRatio] = useState(0.5) const [splitOffset, setSplitOffset] = useState(0) const [showSplit, setShowSplit] = useState(true) return (

bezier-kit: threejs-tube

Build a curve from random 3D points with fromCatmullRom, morph it with{' '} createPathInterpolator, and render halves from createPathSplitter as a color-coded tube.

split first half / {' '} split second half / unsplit
Drag to orbit · Scroll to zoom
) }