JavaScript 3D library
3d scene-graph html5 svg canvas webgl webvr three three.js visualization data-visualization charts charting-libraryA growing collection of useful helpers and abstractions for react-three-fiber. The native route of the library does not export Html or Loader. The default export of the library is web which does export Html and Loader.
react hooks threejs helpers react-three-fiber threeThe usual GLTF workflow is cumbersome: objects can only be found by traversal, changes are made by mutation, making contents conditional is hard. Gltfjsx creates a nested graph of all the objects and materials inside your asset, it will not touch or modify your files in any way. Now you can easily make the data dynamic, alter contents, add events, etc. 1️⃣ First you run your model through gltfjsx. npx allows you to use npm packages without installing them.
gltf jsx react fiber three threejsPlacing content in THREE.js is hard. @react-three/flex brings the webs flexbox spec to react-three-fiber. It is based on Yoga, Facebook's open source layout engine for react-native. These demos are real, you can click them! They contain the full code, too.
react flexbox yoga 3d three yoga-layout react-three-fiber r3fExperimental React hooks for cannon-es. Use this in combination with react-three-fiber. Let's make a cube falling onto a plane. You can play with a sandbox here.
reactjs physics cannon-js cannon three react react-three-fiberKevin's collection of A-Frame components and scenes. A page should open in your browser. You can develop on the source code and the server will handle live compilation and bundling.
aframe vr webvr virtualreality virtual-reality 3d a-frame a-frame-components aframe-component aframe-components k-frame kframe three threejsClassifies GPUs based on their 3D rendering benchmark score allowing the developer to provide sensible default settings for graphically intensive applications. Think of it like a user-agent detection for the GPU but more powerful. By default we use the UNPKG CDN to host the benchmark data. If you would like to serve the benchmark data yourself download the required benchmarking data from benchmarks.tar.gz and serve it from a public directory.
webgl threejs demo device browser hardware gpu detection benchmarks pixijs babylonjs adaptive progressive-enhancement webgl2 detect three.js three babylon 3d typescriptThese demos are real, you can click them! They contain the full code, too. To get started with default controller models add DefaultXRControllers component. It will fetch appropriate input profile models. You can learn more here.
react vr webxr react-three-fiber xr ar threereact-postprocessing is a postprocessing wrapper for @react-three/fiber. This is not (yet) meant for complex orchestration of effects, but can save you hundreds of LOC for a straight forward effects-chain. This library provides an EffectPass which automatically organizes and merges any given combination of effects. This minimizes the amount of render operations and makes it possible to combine many effects without the performance penalties of traditional pass chaining. Additionally, every effect can choose its own blend function.
react webgl threejs 3d postprocessing react-postprocessing three @react-three/fiber👩🦯 Provide accessibility support to R3F such as focus indication, keyboard tab index, and screen reader support
threejs reactjs react-three-fiber a11y accessibility three reactA generic Maya to JSON exporter for triangulated meshes, specifically built for ThreeJS BufferGeometry. Designed for ThreeJS r74 and Maya 2016.This is modified from Sean Griffin's exporter, but designed for static scenes with a lot of instancing (like a forest or city scape).
maya json three js threejs three.js export 2016 mesh geometry parse parserBitmap font rendering for ThreeJS, batching glyphs into a single BufferGeometry. Supports word-wrapping, letter spacing, kerning, signed distance fields with standard derivatives, multi-channel signed distance fields, multi-texture fonts, and more. About 12kb after minification.Works on Three r69-73, r79, and possibly more.
bmfont bitmap font text three threejs quad quads batch render fonts layout word wrap word-wrap word-wrapping wrapping glyph glyphsConvenience functions for sending vertex data to an attribtue of a THREE.BufferGeometry.This will flatten vertex data if necessary, attempt to re-use arrays where possible to minimize GC, and handle some compatibility issues across different versions of ThreeJS. It can handle dynamically growing and shrinking buffers.
buffer geometry buffergeometry three webgl js threejs three.js data vertex vert vertices dynamic bufferdataQuick harness to create a runnable demo for ThreeJS scenes. For a demo, see demo/test.js or three-gl-state-example.This module exports a function which accepts the THREE instance, and returns a new function which creates the orbit viewer with the specified options.
orbit viewer three jsStreams a PNG encoded pixels from a ThreeJS WebGLRenderTarget. This is done in chunks of gl.readPixels, using gl-pixel-stream, and works with render targets upwards of 10000x10000 pixels in Chrome (or more, depending on your GPU).The following transparent PNG image was generated with ThreeJS on the client side using the example/ code. See Running from Source for details.
fbo export save image threejs three three.js pixel pixels rgb rgba streamCreates a THREE.Geometry from a 3D simplicial complex. See demo for an example.This is useful for inter-op with modules like icosphere, bunny, stanford-dragon, mesh-combine, extrude-polyline, teapot, triangulate-contours, etc.
three bunny simplicial complexGLSL post-processing module for Voxel.js! This is a wrapper for @alteredq's THREE.EffectComposer, which allows you to stack fragment shaders for nice effects such as Bloom, Blur, Mosaic Filters and so on.The demo is somewhat less graceful, but you get the idea.
voxel post-processing three shader glsl fragment image graphicsBrowserify-friendly version of THREE.EffectComposer, which offers a quick GLSL post-processing implementation.Full credit goes to @alteredq for writing this, the original source can be found here.
three composer effect post processing shader fragment renderThere is another package similar to this one: three-orbit-controls. I decided to create another package with a different approach, see this issue for the rationale.I am using this package for my 3d tic tac toe online game.
threejs orbitcontrols camera three three.js 3d controls
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.