GitPedia

React three next

React Three Fiber, Threejs, Nextjs starter

From pmndrs·Updated June 11, 2026·View on GitHub·

A minimalist starter for NextJS, @react-three/fiber and Threejs. The project is written primarily in JavaScript, distributed under the MIT License license, first published in 2021. It has gained significant community traction with 2,838 stars and 397 forks on GitHub. Key topics include: react, react-three-fiber, starter, tailwind, threejs.

Downloads Discord Shield

:japanese_castle: React-Three-Next starter

A minimalist starter for NextJS, @react-three/fiber and Threejs.

  • TTL ~ 100ms
  • First load JS ~ 79kb
  • Lighthouse score of 100 (Performance, Accessibility, Best Practices, SEO)

This starter allows you to navigate seamlessly between pages with dynamic dom and/or canvas content without reloading or creating a new canvas every time. 3D components are usable anywhere in the dom. The events, dom, viewport, everything is synchronized!

⚫ Demo :

image

How to use

Installation

Tailwind is the default style. styled-components (styled) are also available.

sh
yarn create r3f-app next my-app # yarn create r3f-app <next> my-app <tailwind|styled>? -ts? # npx create-r3f-app next my-app

:passport_control: Typescript

For typescript add the parameter -ts or --typescript:

sh
yarn create r3f-app next my-app -ts # npx create-r3f-app next my-app -ts

:mount_fuji: Features

  • GLSL imports
  • Canvas is not getting unmounted while navigating between pages
  • Canvas components usable in any div of the page
  • Based on the App directory architecture
  • PWA Support

:bullettrain_side: Architecture

Thanks to tunnel-rat the starter can portal components between separate renderers. Anything rendered inside the <View/> component of the starter will be rendered in the 3D Context. For better performances it uses gl.scissor to cut the viewport into segments.

jsx
<div className='relative'> <View orbit className='relative sm:h-48 sm:w-full'> <Dog scale={2} /> // Some 3D components will be rendered here </View> </div>

:control_knobs: Available Scripts

  • yarn dev - Next dev
  • yarn analyze - Generate bundle-analyzer
  • yarn lint - Audit code quality
  • yarn build - Next build
  • yarn start - Next start

⬛ Stack

How to contribute :

bash
git clone https://github.com/pmndrs/react-three-next && cd react-three-next && yarn install

Maintainers :

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from pmndrs/react-three-next via the GitHub API.Last fetched: 6/16/2026