A New Era
R3F v10 has been a long time coming. We have talked over plans for years but late last year @DennisSmolek took the initiative do it all himself. We now have an alpha release, along with an alpha release of Drei 11. You can try it out today.
npm install @react-three/fiber@alphaWe were so excited to get this out we forgot to make a release for alpha.0 and alpha.1 is already upon us. But let's quickly get you caught up on what you can expect to be new.
- R3F now supports the
WebGLRendererandWebGPURenderer. This meansstate.glis nowstate.renderer. - There is a new scheduler, allowing for
useFrameto have advanced scheduling and also allows for it to be used outside of<Canvas />. Read more here: Frame Loop Overview. - WebGPU and TSL is first-class, with new built-ins just for working with TSL:
useUniforms,useNodes,useLocalNodesandusePostProcessing. Read more here: WebGPU Hook Overview.
And for a more in-depth introduction check out the migration guide.
Alpha 1
And now comes alpha.1 with bug fixes, documentation updates, and several important feature unlocks.
Rendering
- Camera frustum access for in-frame spatial queries.
- Visibility lifecycle events:
Visible,Framed, andOccluded. - Cameras are now part of the scene graph. Children of a camera will render correctly, enabling camera-attached objects by default.
- Renderer-independent render targets, similar to
useFBO, without needing to branch on the active renderer.
Scheduler
- The scheduler no longer depends on R3F and can run standalone.
- Scheduler context can now be shared outside the R3F tree, allowing external UIs or systems to participate in the frame loop while correctly waiting on the root set.
Documentation
- New v10 features documentation.
- Updated developer documentation.
- Migration guide expanded, including details on taking over the renderer.
As always, feedback welcome. Consider all features experimental and may be changed, removed or expanded at any time. Who know,s you could be the reason 👀. Happy building!
What's Changed
- Start of the v10 Branch by @DennisSmolek in #3620
- Fix: Only Run Preinstall when working on actual repo by @DennisSmolek in #3624
- Feat-null-props by @DennisSmolek in #3628
- V10-fix-canvas-override by @DennisSmolek in #3629
- Feat-fire-event-3537 by @DennisSmolek in #3630
- Fix-portal-container-updates by @DennisSmolek in #3631
- Feat-useLoader-preload by @DennisSmolek in #3635
- feat: canvasDebounce by @DennisSmolek in #3636
- Docs-useframe by @DennisSmolek in #3640
- feat: react 19.2 and test clean by @DennisSmolek in #3641
- Chore-update-yarn by @DennisSmolek in #3643
- Fix-type-exports by @DennisSmolek in #3644
- Chore/migrate to pnpm by @DennisSmolek in #3645
- Fix-portal-bug by @DennisSmolek in #3649
- Docs-cleanup-circular by @DennisSmolek in #3655
- Docs-migration-guide by @DennisSmolek in #3658
- V10-shared-context by @DennisSmolek in #3663
- V10-feat-Occlusion by @DennisSmolek in #3664
Full Changelog: v9.4.2...v10.0.0-alpha.1