https://github.com/pmndrs/three-stdlib
📚 Stand-alone library of threejs examples designed to run without transpilation in node & browser
https://github.com/pmndrs/three-stdlib
3d abstractions examples helpers threejs typescript
Last synced: 12 days ago
JSON representation
📚 Stand-alone library of threejs examples designed to run without transpilation in node & browser
- Host: GitHub
- URL: https://github.com/pmndrs/three-stdlib
- Owner: pmndrs
- License: mit
- Created: 2021-02-24T11:53:14.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-05T13:07:04.000Z (17 days ago)
- Last Synced: 2025-04-09T21:12:24.566Z (12 days ago)
- Topics: 3d, abstractions, examples, helpers, threejs, typescript
- Language: JavaScript
- Homepage: https://npmjs.com/three-stdlib
- Size: 4.47 MB
- Stars: 770
- Watchers: 17
- Forks: 131
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - three-stdlib - alone library of threejs examples designed to run without transpilation in node & browser | pmndrs | 180 | (JavaScript)
- awesome-webxr-development - three-stdlib - badge] - Stand-alone version of threejs/examples/jsm written in Typescript & built for ESM & CJS. Designed to run without transpilation in node & browser (Utilities / Visual Editor)
README
# three-stdlib
[](https://npmjs.com/package/three-stdlib)
[](https://npmjs.com/package/three-stdlib)
[](https://twitter.com/pmndrs)
[](https://discord.gg/ZZjjNvJ)
[](https://github.com/pmndrs/three-stdlib/actions/workflows/main.yml)Stand-alone version of [threejs/examples/jsm](https://github.com/mrdoob/three.js/tree/dev/examples/jsm) written in Typescript & built for ESM & CJS.
## Basic usage
```bash
npm install three-stdlib
``````ts
// Export collection
import * as STDLIB from 'three-stdlib'
// Flatbundle
import { OrbitControls, ... } from 'three-stdlib'
```## Problem
`three/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.
## Solution
- A build system for ESM and CJS, compatible with browser, workers, and Node
- Class based, optimized for tree-shaking, no globals, exports instead of collections
- Typesafety with simple annotation-like types
- SemVer and NPM managed dependenciesBut 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.
## How to Contribute
1. Fork and clone the repo
2. Run `yarn install` to install dependencies
3. Create a branch for your PR with `git checkout -b pr-type/issue-number-your-branch-name beta
4. Let's get cooking! 👨🏻🍳🥓### Commit Guidelines
Be sure your commit messages follow this specification: https://conventionalcommits.org/en/v1.0.0-beta.4
## Publishing
We use `semantic-release-action` to deploy the package. Because of this only certain commits will trigger the action of creating a release:
- `chore` will not release a new version
- `fix:` will create a `0.0.x` version
- `feat:` will create a `0.x.0` version
- `BREAKING CHANGE:` will create a `x.0.0` version