# three-stdlib

> stand-alone library of threejs examples

Latest version **2.36.1** (published 2025-11-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install three-stdlib
pnpm add three-stdlib
yarn add three-stdlib
bun add three-stdlib
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; large bundle.

## Facts

| | |
|---|---|
| Version | 2.36.1 |
| Published | 2025-11-10 |
| First published | 2021-02-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 6 |
| Unpacked size | 25.2 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 858 |
| Author | Paul Henschel |
| Maintainers | drcmda, onirenaud, tdfka_rick |
| Keywords | three, typescript, examples, helpers, abstractions, 3d |

## Links

- npm: https://www.npmjs.com/package/three-stdlib
- Repository: https://github.com/pmndrs/three-stdlib
- Issues: https://github.com/pmndrs/three-stdlib/issues
- npm.io page: https://npm.io/package/three-stdlib

## Dependencies (6)

- [fflate](https://npm.io/package/fflate.md) ^0.6.9
- [draco3d](https://npm.io/package/draco3d.md) ^1.4.1
- [potpack](https://npm.io/package/potpack.md) ^1.0.1
- [@types/webxr](https://npm.io/package/@types/webxr.md) ^0.5.2
- [@types/draco3d](https://npm.io/package/@types/draco3d.md) ^1.4.0
- [@types/offscreencanvas](https://npm.io/package/@types/offscreencanvas.md) ^2019.6.4

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 2.36.1 (latest) — 2025-11-10
- 2.0.1-beta.1 (beta) — 2021-04-25
- 1.1.0-alpha.2 (alpha) — 2021-03-26
- 2.36.0 — 2025-04-29
- 2.35.16 — 2025-04-23
- 2.35.15 — 2025-04-05
- 2.35.14 — 2025-02-20
- 2.35.13 — 2025-01-29
- 2.35.12 — 2025-01-19
- 2.35.11 — 2025-01-19
- 2.35.10 — 2025-01-19
- 2.35.9 — 2025-01-19
- 2.35.8 — 2025-01-19
- 2.35.7 — 2025-01-11
- 2.35.6 — 2025-01-08
- … 242 more at https://npm.io/package/three-stdlib/versions

## README

# three-stdlib

[![Version](https://img.shields.io/npm/v/three-stdlib?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/package/three-stdlib)
[![Downloads](https://img.shields.io/npm/dt/three-stdlib.svg?style=flat&colorA=000000&colorB=000000)](https://npmjs.com/package/three-stdlib)
[![Twitter](https://img.shields.io/twitter/follow/pmndrs?label=%40pmndrs&style=flat&colorA=000000&colorB=000000&logo=twitter&logoColor=000000)](https://twitter.com/pmndrs)
[![Discord](https://img.shields.io/discord/740090768164651008?style=flat&colorA=000000&colorB=000000&label=discord&logo=discord&logoColor=000000)](https://discord.gg/ZZjjNvJ)
[![release](https://github.com/pmndrs/three-stdlib/actions/workflows/main.yml/badge.svg?style=flat&colorA=000000&colorB=000000)](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 dependencies

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.

## 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

---
_Source: https://npm.io/package/three-stdlib · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
