drei
Snowpack
drei | Snowpack | |
---|---|---|
41 | 69 | |
7,427 | 19,787 | |
3.4% | - | |
9.4 | 8.4 | |
4 days ago | about 2 years ago | |
JavaScript | JavaScript | |
MIT License | MIT License |
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.
drei
-
Implementing 3D Graphics in React
In React, there are different libraries for rendering 3D. In this article, we will focus on how to use the Three.js Library, React Three Fiber library, and the React Three Drei library for creating 3D objects.
-
Show HN: 3D Framework for the Web. Built on Svelte and Three.js
I have been using react-three-fiber and react-three-drei - the react version of this project. The examples are over whelming and wonderful
https://docs.pmnd.rs/react-three-fiber/getting-started/examp...
One of my favorites is the image gallery. I modified this so that clicking on an image take you into another room (gallery).
https://github.com/pmndrs/drei is a collection of examples and helpers.
Most impressive to me is the one using a GLTF model, video textures on text, reflections and more. A standalone version is
https://bfplr.csb.app/
But even more impressive is the sandbox showing the not-very-many-lines-of-code at
https://codesandbox.io/p/sandbox/ground-reflections-and-vide...
A lot to putting a layer on top of threejs and I have run a fair number of head scratchers. But still the potential is huge. Using threejs has completely changed the way I look at website development. So if you are a svelte person I would definitely look into this.
-
figured out an outline shader, heres the code (raymarching)
the shader is here if you want it in vanilla https://github.com/pmndrs/drei/blob/master/src/core/Outlines.tsx though keep in mind it needs some additional work to support skeletons and instances, that's the code in the layout effect.
-
Cannot render glb file in frontend, instead it showing a black image
the eco system gives you so much freedom, especially when it comes to properly align, display your models, and to make them look nice. there are dozens of components for staging, lighting, soft shadows, you would miss out on all of that https://github.com/pmndrs/drei
- MeshPortalMaterial component from Drei is magic
-
Open Source Project Ideas for Three.js?
there are more pain points than can be enumerated. i think you should take a look here https://github.com/pmndrs/drei and pmndrs in general. also the eco system it has covered so far.
-
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.
-
Best toolset for building a 3D Website?
Definitely ThreeJS and specifically React Three Fiber. React Three Fiber is an amazing wrapper around three that greatly reduces boilerplate. And because of how modular react is, the community has grown massively. With lots of helper components in the Drei library, and amazing examples in the author's Twitter. The Codesandbox is also a goldmine of example. And one of the best-produced courses by Bruno Simon to help you get started. He is the creator of this famous portfolio site.
-
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.
- How to achieve these controls?
Snowpack
-
How to replace webpack & babel with Vite on a legacy React Typescript project
Then there was Webpack which seemed like it would be around for a while. Even after things like Parcel and Snowpack came on the scene people still recommended Webpack. I mean, it's still the backbone of create-react-app. An then, Vite was released.
-
State of the Web: Bundlers & Build Tools
Unbundled development utilizes native ESM support in browsers to offer an ultra-fast development experience. Unlike a traditional bundler which bundles everything in development, unbundled development transforms the code and rewrites import paths to the ESM compliant file path without bundling your code. Additionally, most bundlers that do this pre-bundle dependencies because that decreases the number of imports needed, and dependencies are unlikely to change often. The two most prominent bundlers that utilize unbundled development are Vite and Snowpack. Snowpack, created in 2019, was the first bundler to have an unbundled development experience. However, while Snowpack was popular for some time, this did not last forever. In 2020, the team behind Vue created Vite. Vite has many advantages over Snowpack, like the ease of use, speed, better optimization, and more. Additionally, popular projects like SvelteKit adopted Vite instead of Snowpack. All of this helped Vite pass Snowpack in downloads, and it now has more than 10x downloads compared to Snowpack. In fact, even Astro, a project created by the team behind Snowpack (be on the lookout for an article about Astro), is now using Vite. Overall, if you want fast, unbundled development, I recommend Vite.
-
What are the new and exciting tech for React projects for 2022?
I've been hearing good things about snowpack and have been wanting to give it a go myself as an alternative to webpack/babel
-
Converting to Vite (Part 1)
So how did we get here? Well, it's a good thing to describe alternatives considered when you add issues to a repo! Months ago, @0vortex described in Issue #1131 some opportunities for dependency updates that would require version 5 of webpack with our webpack configuration, and warned that the dependency management would probably be tricky. I fixated on an alternative that he mentioned about converting the project to use Snowpack. I had wanted to learn more about bundling tools, so I took a few days here and there after Thanksgiving and got Open Sauced mostly working with it (see PR #1320).
- npx create-react-app not working -- everything is deprecated
-
React 101: The Basics
I have written a post about setting up a React project using Parcel as a bundler which can give a more detailed walkthrough about getting a React application up and running from scratch. There are multiple ways to do this but some of the more common build tools include Webpack, Parcel, and Snowpack.
-
SolidJS on Snowpack – Quick Dev Guide
For more information about this issue, check these issue tickets: Issue 2998, Issue 3219, Issue 3243
-
Etsy’s Journey to TypeScript
The number of transforms that Babel is doing with an "evergreen" config ("last 2 browser versions") at this point is effectively miniscule. It's a massive toolchain for what increasing turns out to be a minimal amount of actual work. "Last 2 Browser Versions" is effectively everything through ES2019 at this point which covers almost all of the "modern JS syntax". If you aren't using custom transforms you might not be transforming anything that matters in Babel in 2021. I've seen a bunch of projects with huge Babel pipelines where the only actual transform was Typescript's type removal and at that point, if your codebase is entirely Typescript, Typescript has all the downlevel transforms you need "baked in" (and arguably a little bit cleaner and simpler to Babel's kitchen sink but also still somehow millions of plugins approach) and it's just setting Typescript's compile option to the ES level you are most comfortable with. (In 2021 that may even be as high as { "target": "es2019" } or higher in your tsconfig.json and even there Typescript's not going to even need to downlevel much.) Typescript can also transform TSX/JSX to JS without the need of Babel, if you are using React.
Even ES2015 modules which some people still think is the big reason to keep Babel around: a) has full Browser support if you use type="module", but most people still want to pack their JS because just about no one is assuming HTTP/2 or HTTP/3 yet, and b) Babel has never done module format transforms, that's always been the domain of your packer (webpack, parcel, rollup, snowpack, what have you).
If you are updating your project stack in 2021 right now my personal top recommendation is that I really like the approach of snowpack (https://www.snowpack.dev/): ES2105 modules with dev experience (which is great), great Typescript support, and a simpler overall config experience than most other options right now. (It uses esbuild under the hood rather than babel for dev and basic transforms/bundling. It can optionally piggy back webpack and parcel for Production bundling that needs more "power".) Especially that <script type='module"> dev experience feels great now (with Hot Module Reloading too) versus waiting for a full bundle even for dev builds.
-
Build your own component library with Svelte
SvelteKit uses Vite under the hood, which is quite surprising, as Sapper and most tools are developed using Snowpack. Vite 2 is framework-agnostic and designed with SSR at its core.
-
Angular Is Rotten to the Core
I've had some success with npm, snowpack, mocha, typescript as that sort of stack for more "vanilla" efforts that feel rather more "modern". I think mocha is easier and cleaner than jest. I like keeping all of my transpilation to just Typescript without needing a massive Babel install/pipeline. snowpack (https://www.snowpack.dev/) right now I think is in a sweet spot of a better "ES Module native" developer experience than webpack and has better defaults when left unconfigured. (So much so that while there are snowpack templates/generators provided by the project I mostly don't use them other than for reference.)
What are some alternatives?
react-three-fiber - 🇨🇭 A React renderer for Three.js
vite - Next generation frontend tooling. It's fast!
three-mesh-bvh - A BVH implementation to speed up raycasting and enable spatial queries against three.js meshes.
Rollup - Next-generation ES module bundler
threlte - A three.js component library for Svelte. [Moved to: https://github.com/threlte/threlte]
parcel - The zero configuration build tool for the web. 📦🚀
react-three-arjs - AR.js with react-three-fiber
esbuild - An extremely fast bundler for the web
gltfjsx - 🎮 Turns GLTFs into JSX components
gulp - A toolkit to automate & enhance your workflow
react-postprocessing - 📬 postprocessing for react-three-fiber
webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.