Stand-alone version of threejs/examples/jsm written in Typescript & built for ESM & CJS.
npm install three-stdlib
// Export collection
import * as STDLIB from 'three-stdlib'
// Flatbundle
import { OrbitControls, ... } from 'three-stdlib'
// Pick individual objects
import { OrbitControls } from 'three-stdlib/controls/OrbitControls'
threejs/examples
are usually regarded as something that you copy/paste into your project and adapt to your needs. That's not how people use it, and this has caused numerous issues in the past.
- A build system for esm and cjs
- Version managed dependencies
- Class based, optimized for tree-shaking, no globals, exports instead of collections
- Single flatbundle as well as individual transpiles
- Typesafety with simple annotation-like types
- CI, tests, linting, formatting (prettier)
But most importantly, allowing more people that use and rely on these primitives to hold a little stake, and to share the weight of maintaining it.
If you want to get involved you could do any of the following:
- Help to maintain and sync the existing primitives
- Create stories for these examples for our dedicated storybook
- Convert some of the files to Typescript
- Add new examples for the library you think could be helpful for others