Skip to content

Commit 154b680

Browse files
committed
docs: docs updates
1 parent c9bc7fe commit 154b680

File tree

3 files changed

+160
-82
lines changed

3 files changed

+160
-82
lines changed

AwesomeR3F.md

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# Awesome React Three Fiber
2+
3+
A curated list of awesome resources, libraries, tools, and projects for [React Three Fiber](https://github.com/pmndrs/react-three-fiber).
4+
5+
> **Note:** We're just getting started with this list! If you have a resource, library, or project that should be included, please [open a PR](https://github.com/pmndrs/react-three-fiber/issues/3642) to add it.
6+
7+
---
8+
9+
## Contents
10+
11+
- [Learning Resources](#learning-resources)
12+
- [Official Packages](#official-packages)
13+
- [Physics](#physics)
14+
- [State Management](#state-management)
15+
- [Animation](#animation)
16+
- [UI & Controls](#ui--controls)
17+
- [Shaders & Materials](#shaders--materials)
18+
- [Utilities](#utilities)
19+
- [Editors & Dev Tools](#editors--dev-tools)
20+
- [Starters & Templates](#starters--templates)
21+
- [Showcase](#showcase)
22+
23+
---
24+
25+
## Learning Resources
26+
27+
Tutorials, courses, and documentation to help you learn R3F.
28+
29+
- [Three.js Documentation](https://threejs.org/docs) - Official Three.js docs and [examples](https://threejs.org/examples)
30+
- [Discover Three.js](https://discoverthreejs.com) - Comprehensive guide, especially the [Tips and Tricks](https://discoverthreejs.com/tips-and-tricks) chapter for best practices
31+
- [Three.js Journey](https://threejs-journey.com) - Arguably the best learning resource, includes a full [R3F chapter](https://threejs-journey.com/lessons/what-are-react-and-react-three-fiber)
32+
33+
## Official Packages
34+
35+
Core packages maintained by the [Poimandres](https://github.com/pmndrs) team.
36+
37+
- [`@react-three/drei`](https://github.com/pmndrs/drei) - Useful helpers, this is an ecosystem in itself
38+
- [`@react-three/gltfjsx`](https://github.com/pmndrs/gltfjsx) - Turns GLTFs into JSX components
39+
- [`@react-three/postprocessing`](https://github.com/pmndrs/react-postprocessing) - Post-processing effects
40+
- [`@react-three/uikit`](https://github.com/pmndrs/uikit) - WebGL rendered UI components for three-fiber
41+
- [`@react-three/test-renderer`](https://github.com/pmndrs/react-three-fiber/tree/master/packages/test-renderer) - For unit tests in node
42+
- [`@react-three/offscreen`](https://github.com/pmndrs/react-three-offscreen) - Offscreen/worker canvas for react-three-fiber
43+
- [`@react-three/flex`](https://github.com/pmndrs/react-three-flex) - Flexbox for react-three-fiber
44+
- [`@react-three/xr`](https://github.com/pmndrs/react-xr) - VR/AR controllers and events
45+
- [`@react-three/csg`](https://github.com/pmndrs/react-three-csg) - Constructive solid geometry
46+
- [`@react-three/a11y`](https://github.com/pmndrs/react-three-a11y) - Real accessibility for your scene
47+
- [`@react-three/gpu-pathtracer`](https://github.com/pmndrs/react-three-gpu-pathtracer) - Realistic path tracing
48+
49+
## Physics
50+
51+
Libraries for adding physics simulations to your 3D scenes.
52+
53+
- [`@react-three/rapier`](https://github.com/pmndrs/react-three-rapier) - 3D physics using Rapier
54+
- [`@react-three/cannon`](https://github.com/pmndrs/use-cannon) - 3D physics using Cannon
55+
- [`@react-three/p2`](https://github.com/pmndrs/use-p2) - 2D physics using P2
56+
57+
## State Management
58+
59+
Recommended state management solutions that work great with R3F.
60+
61+
- [`zustand`](https://github.com/pmndrs/zustand) - Flux based state management
62+
- [`jotai`](https://github.com/pmndrs/jotai) - Atoms based state management
63+
- [`valtio`](https://github.com/pmndrs/valtio) - Proxy based state management
64+
65+
## Animation
66+
67+
Tools for animating your 3D objects and scenes.
68+
69+
- [`react-spring`](https://github.com/pmndrs/react-spring) - A spring-physics-based animation library
70+
- [`framer-motion-3d`](https://www.framer.com/docs/three-introduction/) - Framer Motion for 3D, a popular animation library
71+
72+
## UI & Controls
73+
74+
Libraries for building user interfaces and controls.
75+
76+
- [`leva`](https://github.com/pmndrs/leva) - Create GUI controls in seconds
77+
- [`use-gesture`](https://github.com/pmndrs/react-use-gesture) - Mouse/touch gestures
78+
- [`koestlich`](https://github.com/coconut-xr/koestlich) - UI component library for react-three-fiber
79+
80+
## Shaders & Materials
81+
82+
Tools for creating custom shaders and materials.
83+
84+
- [`lamina`](https://github.com/pmndrs/lamina) - Layer based shader materials
85+
- [`composer-suite`](https://github.com/hmans/composer-suite) - Composing shaders, particles, effects and game mechanics
86+
87+
## Utilities
88+
89+
Helpful utility libraries for common tasks.
90+
91+
- [`maath`](https://github.com/pmndrs/maath) - A kitchen sink for math helpers
92+
- [`miniplex`](https://github.com/hmans/miniplex) - ECS (entity management system)
93+
94+
## Editors & Dev Tools
95+
96+
Visual editors and development tools for R3F.
97+
98+
- [`triplex`](https://triplex.dev/) - Visual editor for react-three-fiber
99+
- [`theatrejs`](https://www.theatrejs.com) - Animation editor and motion design tooling
100+
101+
## Starters & Templates
102+
103+
Boilerplates and templates to get started quickly.
104+
105+
- [`create-r3f-app next`](https://github.com/pmndrs/react-three-next) - Next.js starter
106+
107+
## Showcase
108+
109+
A selection of companies and projects using React Three Fiber.
110+
111+
### Design Agencies
112+
113+
- [Vercel](https://www.vercel.com)
114+
- [Basement](https://basement.studio)
115+
- [Studio Freight](https://studiofreight.com)
116+
- [14 Islands](https://www.14islands.com)
117+
- [Ueno](https://dribbble.com/ueno)
118+
119+
### 3D Tools & Modellers
120+
121+
- [Colorful](https://www.colorful.app) - 3D modeller
122+
- [Bezi](https://www.bezi.com) - 3D modeller
123+
- [Ready Player Me](https://readyplayer.me) - Avatar configurator
124+
125+
### CAD & Engineering
126+
127+
- [Flux.ai](https://www.flux.ai) - PCB builder
128+
- [3DConfig](https://3dconfig.com) - Floor planner
129+
- [Buerli.io](https://buerli.io) - CAD
130+
- [GetEncube](https://www.getencube.com) - CAD
131+
- [Glowbuzzer](https://www.glowbuzzer.com) - CAD
132+
133+
### AI & Generative
134+
135+
- [Luma AI Genie](https://lumalabs.ai/genie) - AI models
136+
- [Skybox by Blockade Labs](https://skybox.blockadelabs.com) - AI environment maps
137+
138+
### Other
139+
140+
- [Zillow](https://www.zillow.com) - Real estate
141+
142+
---
143+
144+
## Contributing
145+
146+
Want to add something to the list? [Open a PR](https://github.com/pmndrs/react-three-fiber/issues/3642) with your addition!
147+
148+
Please ensure your submission:
149+
150+
- Is related to React Three Fiber
151+
- Includes a brief description
152+
- Links to an active repository or website

docs/getting-started/examples.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,4 +498,4 @@ nav: 3
498498
<li>
499499
<p>[![shader-hmr demo](https://pmndrs.github.io/examples/shader-hmr/thumbnail.webp)](https://pmndrs.github.io/examples/shader-hmr)</p>
500500
</li>
501-
</Grid>
501+
</Grid>

readme.md

Lines changed: 7 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ No. There is no overhead. Components render outside of React. It outperforms Thr
3535

3636
Yes. It merely expresses Threejs in JSX, `<mesh />` dynamically turns into `new THREE.Mesh()`. If a new Threejs version adds, removes or changes features, it will be available to you instantly without depending on updates to this library.
3737

38+
#### Does it support WebGPU?
39+
40+
Yes. With minor changes in v9 and significant work in v10 WebGPU support is first class. We support all ThreeJS WebGPU features/Nodes and expand it with our own hooks and utilities.
41+
3842
### What does it look like?
3943

4044
<table>
@@ -206,7 +210,7 @@ export default function App() {
206210

207211
# Documentation, tutorials, examples
208212

209-
Visit [docs.pmnd.rs](https://docs.pmnd.rs/react-three-fiber)
213+
Visit [docs.pmnd.rs](https://docs.pmnd.rs/react-three-fiber) | [Awesome React Three Fiber](AwesomeR3F.md)
210214

211215
# First steps
212216

@@ -217,89 +221,11 @@ You need to be versed in both React and Threejs before rushing into this. If you
217221
3. [Look up](https://threejs.org/docs/index.html#api/en/objects/Mesh) the JSX elements that you see (mesh, ambientLight, etc), _all_ threejs exports are native to three-fiber.
218222
4. Try changing some values, scroll through our [API](https://docs.pmnd.rs/react-three-fiber) to see what the various settings and hooks do.
219223

220-
Some helpful material:
221-
222-
- [Threejs-docs](https://threejs.org/docs) and [examples](https://threejs.org/examples)
223-
- [Discover Threejs](https://discoverthreejs.com), especially the [Tips and Tricks](https://discoverthreejs.com/tips-and-tricks) chapter for best practices
224-
- [Bruno Simons Threejs Journey](https://threejs-journey.com), arguably the best learning resource, now includes a full [R3F chapter](https://threejs-journey.com/lessons/what-are-react-and-react-three-fiber)
225-
226-
<a href="https://threejs-journey.com"><img src="docs/banner-journey.jpg" /></a>
227-
228-
# Ecosystem
229-
230-
There is a vibrant and extensive eco system around three-fiber, full of libraries, helpers and abstractions.
231-
232-
- [`@react-three/drei`](https://github.com/pmndrs/drei) &ndash; useful helpers, this is an eco system in itself
233-
- [`@react-three/gltfjsx`](https://github.com/pmndrs/gltfjsx) &ndash; turns GLTFs into JSX components
234-
- [`@react-three/postprocessing`](https://github.com/pmndrs/react-postprocessing) &ndash; post-processing effects
235-
- [`@react-three/uikit`](https://github.com/pmndrs/uikit) &ndash; WebGL rendered UI components for three-fiber
236-
- [`@react-three/test-renderer`](https://github.com/pmndrs/react-three-fiber/tree/master/packages/test-renderer) &ndash; for unit tests in node
237-
- [`@react-three/offscreen`](https://github.com/pmndrs/react-three-offscreen) &ndash; offscreen/worker canvas for react-three-fiber
238-
- [`@react-three/flex`](https://github.com/pmndrs/react-three-flex) &ndash; flexbox for react-three-fiber
239-
- [`@react-three/xr`](https://github.com/pmndrs/react-xr) &ndash; VR/AR controllers and events
240-
- [`@react-three/csg`](https://github.com/pmndrs/react-three-csg) &ndash; constructive solid geometry
241-
- [`@react-three/rapier`](https://github.com/pmndrs/react-three-rapier) &ndash; 3D physics using Rapier
242-
- [`@react-three/cannon`](https://github.com/pmndrs/use-cannon) &ndash; 3D physics using Cannon
243-
- [`@react-three/p2`](https://github.com/pmndrs/use-p2) &ndash; 2D physics using P2
244-
- [`@react-three/a11y`](https://github.com/pmndrs/react-three-a11y) &ndash; real a11y for your scene
245-
- [`@react-three/gpu-pathtracer`](https://github.com/pmndrs/react-three-gpu-pathtracer) &ndash; realistic path tracing
246-
- [`create-r3f-app next`](https://github.com/pmndrs/react-three-next) &ndash; nextjs starter
247-
- [`lamina`](https://github.com/pmndrs/lamina) &ndash; layer based shader materials
248-
- [`zustand`](https://github.com/pmndrs/zustand) &ndash; flux based state management
249-
- [`jotai`](https://github.com/pmndrs/jotai) &ndash; atoms based state management
250-
- [`valtio`](https://github.com/pmndrs/valtio) &ndash; proxy based state management
251-
- [`react-spring`](https://github.com/pmndrs/react-spring) &ndash; a spring-physics-based animation library
252-
- [`framer-motion-3d`](https://www.framer.com/docs/three-introduction/) &ndash; framer motion, a popular animation library
253-
- [`use-gesture`](https://github.com/pmndrs/react-use-gesture) &ndash; mouse/touch gestures
254-
- [`leva`](https://github.com/pmndrs/leva) &ndash; create GUI controls in seconds
255-
- [`maath`](https://github.com/pmndrs/maath) &ndash; a kitchen sink for math helpers
256-
- [`miniplex`](https://github.com/hmans/miniplex) &ndash; ECS (entity management system)
257-
- [`composer-suite`](https://github.com/hmans/composer-suite) &ndash; composing shaders, particles, effects and game mechanics
258-
- [`triplex`](https://triplex.dev/) &ndash; visual editor for react-three-fiber
259-
- [`koestlich`](https://github.com/coconut-xr/koestlich) &ndash; UI component library for react-three-fiber
260-
261-
[Usage Trend of the @react-three Family](https://npm-compare.com/@react-three/a11y,@react-three/cannon,@react-three/csg,@react-three/drei,@react-three/flex,@react-three/gltfjsx,@react-three/gpu-pathtracer,@react-three/offscreen,@react-three/p2,@react-three/postprocessing,@react-three/rapier,@react-three/test-renderer,@react-three/uikit,@react-three/xr)
262-
263-
# Who is using Three-fiber
264-
265-
A small selection of companies and projects relying on three-fiber.
266-
267-
- [`vercel`](https://www.vercel.com) (design agency)
268-
- [`basement`](https://basement.studio) (design agency)
269-
- [`studio freight`](https://studiofreight.com) (design agency)
270-
- [`14 islands`](https://www.14islands.com) (design agency)
271-
- [`ueno`](https://dribbble.com/ueno) (design agency) — [video](https://twitter.com/0xca0a/status/1204373807408013312)
272-
- [`flux.ai`](https://www.flux.ai) (PCB builder)
273-
- [`colorful.app`](https://www.colorful.app) (modeller)
274-
- [`bezi`](https://www.bezi.com) (modeller)
275-
- [`readyplayer.me`](https://readyplayer.me) (avatar configurator)
276-
- [`zillow`](https://www.zillow.com) (real estate)
277-
- [`lumalabs.ai/genie`](https://lumalabs.ai/genie) (AI models)
278-
- [`skybox.blockadelabs`](https://skybox.blockadelabs.com) (AI envmaps)
279-
- [`3dconfig`](https://3dconfig.com) (floor planer)
280-
- [`buerli.io`](https://buerli.io) (CAD)
281-
- [`getencube`](https://www.getencube.com) (CAD)
282-
- [`glowbuzzer`](https://www.glowbuzzer.com) (CAD) — [video](https://twitter.com/glowbuzzer/status/1678396014644940800)
283-
- [`triplex`](https://triplex.dev) (editor) — [video](https://twitter.com/_douges/status/1708859381369221539)
284-
- [`theatrejs`](https://www.theatrejs.com) (editor) — [video](https://twitter.com/0xca0a/status/1566838823170068480)
285-
286224
# How to contribute
287225

288-
Checkout the detailed [contribution docs.](docs/development/README.md)
289-
290-
If you like this project, please consider helping out. All contributions are welcome as well as donations to [Opencollective](https://opencollective.com/pmndrs)
291-
292-
# Testing
226+
See the [Development Guide](docs/development/README.md) for setup, workflow, and [contributing standards](docs/development/CONTRIBUTING.md).
293227

294-
R3F uses Jest for unit testing and bundle verification scripts to ensure correct THREE.js imports across entry points. For detailed testing instructions, see the [Testing Guide](docs/development/TESTING.md).
295-
296-
```bash
297-
# Run all tests
298-
yarn test
299-
300-
# Build and verify bundles
301-
yarn build && yarn verify-bundles
302-
```
228+
All contributions are welcome as well as donations to [Open Collective](https://opencollective.com/pmndrs).
303229

304230
#### Backers
305231

0 commit comments

Comments
 (0)