pmndrs/react-three-fiber

🇨🇭 A React renderer for Three.js

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 57 minutes ago
Added to GitGenius on May 7th, 2026
Created on February 25th, 2019
Open Issues & Pull Requests: 53 (+0)
Number of forks: 1,916
Total Stargazers: 31,689 (+2)
Total Subscribers: 211 (+0)

Issue Activity (beta)

Open issues: 41
New in 7 days: 21
Closed in 7 days: 2
Avg open age: 57 days
Stale 30+ days: 5
Stale 90+ days: 4

Recent activity

Opened in 7 days: 21
Closed in 7 days: 2
Comments in 7 days: 3
Events in 7 days: 27

Top labels

  • v10 (101)
  • bug (89)
  • enhancement (28)
  • needs reproduction (20)
  • alpha (13)
  • documentation (12)
  • react-native (12)
  • Typescript (10)

Repository Insights (GitGenius)

Median issue/PR response: 3.2 hours
Mean response time: 25.1 days
90th percentile: 67.1 days
Tracked items: 318

Most active contributors

Sign in to see contributor activity.

Detailed Description

React-three-fiber is a React renderer for Three.js that enables developers to build 3D scenes declaratively using reusable, self-contained components. Written in TypeScript, it bridges React's component model with Three.js's 3D graphics capabilities, allowing scenes to be constructed as JSX elements that react to state changes and participate fully in React's ecosystem. The library transforms Three.js objects directly into React components, so a mesh element becomes a THREE.Mesh instance, and all Three.js exports are natively available as JSX elements.

The core value proposition centers on eliminating the gap between React development patterns and 3D graphics programming. Rather than imperatively constructing Three.js scenes, developers write declarative component hierarchies that automatically synchronize with Three.js objects. The library maintains version parity with React itself, with @react-three/fiber@8 pairing with React@18 and @react-three/fiber@9 pairing with React@19. According to the repository documentation, there are no inherent limitations compared to plain Three.js, and performance is not compromised—the library actually outperforms raw Three.js at scale due to React's scheduling capabilities.

A significant aspect of react-three-fiber's design is its instant compatibility with Three.js updates. Since the library merely expresses Three.js in JSX syntax, new features added to Three.js become immediately available without requiring library updates. This architectural approach means developers can leverage the latest Three.js capabilities without waiting for react-three-fiber to catch up.

The repository shows active maintenance and community engagement.

The surrounding ecosystem is extensive and vibrant. The pmndrs organization maintains numerous complementary libraries including drei for helpers, gltfjsx for converting 3D models to components, postprocessing for visual effects, uikit for WebGL UI components, and specialized physics libraries using Rapier and Cannon. Additional ecosystem projects cover VR/AR support, constructive solid geometry, path tracing, animation libraries, state management solutions, and visual editing tools like Triplex.

Adoption spans design agencies, CAD platforms, real estate applications, AI model viewers, and avatar configurators. Companies including Vercel, Basement, Studio Freight, Flux.ai, ReadyPlayer.me, Zillow, and Luma Labs rely on react-three-fiber for production applications. The documentation site at docs.pmnd.rs provides comprehensive guides, and the project encourages learning through Three.js fundamentals before diving into react-three-fiber development.

react-three-fiber
by
pmndrspmndrs/react-three-fiber

Repository Details

Fetching additional details & charts...