three-rs
Totally not inspired Rust 3D library! Ok, maybe, just a tiny bit... by Three.JS.
If you a looking for something simple to prototype 3D graphics with, you found it.
Screenshots
Motivation and Goals
- Ergonomics is first priority. Being able to prototype quickly and code intuitively is more important than capturing all the 3D features. We already have a solid foundation with gfx-rs, so let's make some use of it by providing a nice higher-level abstraction.
- Follow "Three.JS" - this is simpler than coming up with a brand new API (like kiss3d), yet instantly familiar to a large portion of Web develper. Some deviations from the original API are imminent.
- Explore the capabilities of Rust to mimic deep object-oriented nature of JavaScript. This is a tough challenge, involving channels, defer implementations, blood, and sweat.
- Battle-test the genmesh library. Being able to create cubes, spheres, cylinders (and more) with one-liners allows for nice proceduraly generated demos.
- Play with Component-Graph System concept, provided by froggy. It's a good fit for the scene graph implementation that is fast and usable.
Interestingly, you can observe an new trend in rust-gamedev community to mimic existing libraries: Amethyst was created to be Rust version of Autodesk Stingray engine (formely Bitsquid), ggez is a re-interpretation of Love2D engine, and now three-rs
attempting to capture Three.JS usability. This is not to say that we failed for find our own path, I just see the current step inevitable.