threejs-boilerplate

Three.js + TypeScript + SolidJS + Vite + Vitest

MIT License

Stars
56

Three.js Boilerplate

๐Ÿ”ฅ Three.js + TypeScript + SolidJS + Vite + Vitest ๐Ÿš€

Minimal, yet complete template for developing three.js projects.

๐Ÿ“‚ Structure

Three.js Boilerplate
โ”œโ”€โ”€ __mocks__/
โ”œโ”€โ”€ coverage/
โ”œโ”€โ”€ dist/
โ”œโ”€โ”€ node_modules/
โ”œโ”€โ”€ public/
โ”‚ย ย  โ”œโ”€โ”€ assets/
โ”‚ย ย  โ”œโ”€โ”€ favicons/
โ”‚ย ย  โ”œโ”€โ”€ scripts/
โ”‚ย ย  โ”œโ”€โ”€ styles/
โ”‚ย ย  โ”œโ”€โ”€ browserconfig.xml
โ”‚ย ย  โ”œโ”€โ”€ manifest.json
โ”‚ย ย  โ”œโ”€โ”€ robots.txt
โ”‚ย ย  โ””โ”€โ”€ sitemap.xml
โ”œโ”€โ”€ src/
โ”‚ย ย  โ”œโ”€โ”€ app/
โ”‚ย ย  โ”œโ”€โ”€ assets/
โ”‚ย ย  โ”œโ”€โ”€ components/
โ”‚ย ย  โ”œโ”€โ”€ sandbox/
โ”‚ย ย  โ”œโ”€โ”€ scss/
โ”‚ย ย  โ”œโ”€โ”€ shaders/
โ”‚ย ย  โ”œโ”€โ”€ utils/
โ”‚ย ย  โ”œโ”€โ”€ global.d.ts
โ”‚ย ย  โ””โ”€โ”€ main.tsx
โ”œโ”€โ”€ tests/
โ”‚ย ย  โ”œโ”€โ”€ app/
โ”‚ย ย  โ”œโ”€โ”€ components/
โ”‚ย ย  โ”œโ”€โ”€ sandbox/
โ”‚ย ย  โ”œโ”€โ”€ shaders/
โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ”œโ”€โ”€ canvas.mock.d.ts
โ”‚   โ”œโ”€โ”€ canvas.mock.ts
โ”‚   โ””โ”€โ”€ global.spec.ts
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ”œโ”€โ”€ vite.config.ts
โ””โ”€โ”€ vitest.config.ts

โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Linear Fog โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Ground Plane โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Orbit Controls โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Stats Monitoring โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Perspective Camera โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Default WebGL2 Renderer โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Ambient & Directional Lighting

โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Scene configuration file with initial parameter values. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Custom checkerboard-like ground plane material. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข GUI controls built on top of lil-gui. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Uncharted 2 tone mapping shader.

โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Promise based APIs โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Loading errors logging โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Start, Progress & Complete loading events โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ usePublicFolder option for setting assets path โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ—ฆ Audio, GLTF/GLB, CubeTexture & Texture loaders

โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Array, Color, Number, String & deepFreeze methods. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Elastic Number, Vector3 and Vector3 classes. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Custom Events and EventEmitter manager. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Mouse Wheel normalization function. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข debounce and throttle functions. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข requestAnimationFrame manager. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Custom Web Worker manager. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Unity-like Vector3 directions. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Spline interpolation manager. โ€ƒโ€ƒโ€ƒโ€ƒโ€ƒย โ€ข Screen Viewport manager.