react-three-fiber
wasm-bindgen
react-three-fiber | wasm-bindgen | |
---|---|---|
115 | 50 | |
27,936 | 7,967 | |
0.9% | 1.5% | |
8.9 | 9.6 | |
7 days ago | 4 days ago | |
TypeScript | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
react-three-fiber
-
You can now write React in Lua
That parenthetical “or anything declarative really” is doing a lot of work, given that:
React is a tool for writing 3D scenes that can handle state updates: https://github.com/pmndrs/react-three-fiber
React is a tool for writing music that can handle state updates: https://github.com/FormidableLabs/react-music
React is a tool for writing infrastructure-as-code templates that… um… could with some additional work handle state updates: https://www.linkedin.com/pulse/aws-terraform-generator-using...
-
A Deep Dive into Three.js: Exploring the Beauty of 3D on the Web 🌐
Advanced Examples and Utilities Three.js React https://github.com/pmndrs/react-three-fiber : React Three Fiber is a React renderer for Three.js, making it easier to integrate Three.js with React.
-
3JS Job Market
this is perfect then. a large part of the threejs userbase is using https://github.com/pmndrs/react-three-fiber (roughly 1/4, and growing) and this is also where you find lots of job opportunities. fiber has a vast eco system, but if you can pair this with your knowledge of shaders you'll find a job tomorrow if you wanted.
-
Next topics for mastering frontend
there's 3d with threeJS you could play around with that and hooking it into react with react-three-fiber.
-
Was anyone able to make a 3D CAD tool in React?
Have you looked at this: https://github.com/pmndrs/react-three-fiber
-
CLI vs Expo
Only instance in recent memory where I was able to get something working with Expo but not the CLI was when trying to integrate react-three-fiber, but even that may be resolved now.
-
Getting started with 3D web development
this will put you at a massive advantage: https://github.com/pmndrs/react-three-fiber it's a renderer, just like react-dom, it won't change what threejs is or how it functions.
-
Suggestions needed
there's a whole eco system around three in react and next. it starts with react-three-fiber, drei has tons of helpers, and then there's three-next for when you need 100% lighthouse, persisting canvas across routes etc.
-
Built a new splash page at the beginning of the year. Used the opportunity to experiment with react-three-fiber.
I picked the stack I did to expand upon my skill set. In particular, I wanted to brush up on react-three-fiber, react-spring & drei.
-
My own collection so far :)
I think the easiest for you would be to get into this through web development try this https://github.com/pmndrs/react-three-fiber coupled with this https://github.com/pmndrs/react-xr But don't expect super beautiful graphic from this, it's abstraction over three.js library which is abstraction over webgl standard which implements OpenGL ES 2.0 which is 7 years old graphics standard targeted to mobile devices with not much power. Or you can experiment with unity (unity XR) or unreal engine which are harder to learn but produce better graphics.
wasm-bindgen
-
Sqlite3 WebAssembly
> I couldn't figure out a way to to get emscripten wasm code to play nice with wasm32-unknown-unknown
There is good news there, some people plan to work on making Emscripten and Rust work well in Wasm:
https://github.com/rustwasm/wasm-bindgen/pull/4014#issuecomm...
-
Is the Web Browser the Most Important Platform for App Development?
That said, WebAssembly’s ecosystem is still fragmented. Tools like Emscripten (C/C++), wasm-bindgen (Rust), and JSGo (Go) serve different languages, but this complicates the standardization of interactions with web APIs, limiting broader WASM integration with web development.
-
Show HN: Free e-book about WebGPU Programming
> Here's an example of Bevy WebGL vs Bevy WebGPU
I think a better comparison would be more representative of a real game scene, because modern graphics APIs is meant to optimize typical rendering loops and might even add more overhead to trivial test cases like bunnymark.
That said though, they're already comparable which seems great considering how little performance optimization WebGPU has received relative to WebGL (at the browser level). There are also some performance optimizations at the wasm binding level that might be noticeable for trivial benchmarks that haven't made it into Bevy yet, e.g., https://github.com/rustwasm/wasm-bindgen/issues/3468 (this applies much more to WebGPU than WebGL).
> They're 10k triangles and they're not overlapping... There are no textures per se. No passes except the main one, with a 1080p render texture. No microtriangles. And I bet the shader is less than 0.25 ALU.
I don't know your exact test case so I can't say for sure, but if there are writes happening per draw call or something then you might have problems like this. Either way your graphics driver should be receiving roughly the same commands as you would when you use Vulkan or DX12 natively or WebGL, so there might be something else going on if the performance is a lot worse than you'd expect.
There is some extra API call (draw, upload, pipeline switch, etc.) overhead because your browser execute graphics commands in a separate rendering process, so this might have a noticeable performance effect for large draw call counts. Batching would help a lot with that whether you're using WebGL or WebGPU.
- Facilitating high-level interactions between WASM modules and JavaScript
-
Dealing with Unicode string, done right and better.
I already knew that there was a good quality library unicode-segmentation in Rust, and Rust has a great WebAssembly toolchain called wasm-bindgen.
-
Implement a Simple Calculator Android App by Reusing Logics in Rust via JavaScript-WASM Interfacing
The binding of Rust (WASM) and JavaScript is done with the help of wasm-bindgen and wasm-pack -- https://github.com/rustwasm/wasm-bindgen/tree/main/examples/without-a-bundler
-
If the native speed DOM/Web API for Rust becomes a reality, would you be willing to build your web apps with Rust and HTML/CSS?
Another strange issue could be seen in the strict class heritage organized definition of the DOM, which can not be handled very well by rust because of a still unsolved bindgen issue (#210).
-
Rust + WASM + Typescript [+ React]
For a much simpler but less flexible approach there's wasm-pack for creating JS packages from Rust, and wasm-bindgen for easy interop. Both have very good documentation.
-
We Just Released our Rust WebTransport Teleconferencing System - Here are Some Lessons Learned
We encountered quite a few hurdles on our journey. For one, we had to build our own yew-webtransport and yew-websocket integration from scratch by adding WebTransport definitions to wasm-bindgen (pull request link). We also had to add WebTransport support to the h3 crate (pull request link). co-created by @ten3roberts
-
Looking to create a backend service for a website in Rust and I’m wondering on how to best do it
Go with your WebAssembly module idea. Since it sounds like your chess engine does not draw a UI, it shouldn't be too difficult. wasm-bindgen will be your best friend.
What are some alternatives?
drei - 🥉 useful helpers for react-three-fiber
wasm-pack - 📦✨ your favorite rust -> wasm workflow tool!
BabylonJS - Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
wasmer - 🚀 Fast, secure, lightweight containers based on WebAssembly
THREE.MeshLine - Mesh replacement for THREE.Line
wasmtime - A lightweight WebAssembly runtime that is fast, secure, and standards-compliant
Next.js - The React Framework
trunk - Build, bundle & ship your Rust WASM application to the web.
framer/motion - Open source, production-ready animation and gesture library for React [Moved to: https://github.com/motiondivision/motion]
wasi-libc - WASI libc implementation for WebAssembly
xr - 🤳 VR/AR for react-three-fiber
gloo - A modular toolkit for building fast, reliable Web applications and libraries with Rust and WASM