wrend
sdf-viewer
wrend | sdf-viewer | |
---|---|---|
7 | 2 | |
113 | 66 | |
- | - | |
10.0 | 9.2 | |
over 1 year ago | 2 days ago | |
Rust | Rust | |
- | 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.
wrend
-
A new WebGL rendering library written in Rust
It’s also callable from JavaScript if you don’t want to have to deal with the Rust toolchain. Checkout this directory if you want to see some copyable examples, including raw html and javascript, which is about the lowest barrier to entry you can get I think: https://github.com/austintheriot/wrend/tree/master/examples
-
[Media] Announcing wrend, a Rust/Wasm + WebGL2 rendering library (callable from both Rust and JavaScript!)
Major props for https://github.com/austintheriot/wrend/tree/master/examples -- having real examples integrated with different build systems really lowers the barrier to start playing around
-
Announcing wrend, a Rust/Wasm + WebGL2 rendering library (callable from both Rust and JavaScript!)
Hi all! Wrend is a wrapper library around raw WebGL2 code. Its goal is to make working with WebGL/WebGL2 more convenient when writing Rust and/or JavaScript/TypeScript code in the browser. Because of a JavaScript-compatible wrapper API around the raw Rust code, wrend is callable from both Rust AND JavaScript, and it includes a strongly typed TypeScript API. Similarly, it is available for download from both crates.io and npm. I initially started this library out of frustration. I love to do creative coding, but I found myself dedicating more and more time and energy to refactoring bad infrastructure rather than working on new creative projects, so I decided to channel that misspent energy instead into a structured library that would give me the unified organization I was looking for and that I could also share with others. Some highlights: wrend provides safe and easy abstraction over requestAnimationFrame calls, making continuous animations as simple as calling start_animating and then holding the returned handle in memory. Stopping is also as easy as dropping the returned renderer handle and/or calling stop_animating. (When working with JavaScript, it’s as simple as calling free() on the the renderer. Taking canvas screenshots is built in, and so is direct recording of the canvas—something invaluable when doing creative coding and sharing the results. Why WebGL and and not WebGPU? While I’m aware that WebGPU is up-and-coming, and I’m very excited for it, and while it is even possible to write right now in Rust, I’m a web developer first and foremost, and I like to share my creations with lots of people. As soon as WebGPU support is stable in mainstream browsers, I will happily redirect my energies :) Wrend is very work in progress, and it’s actually my first Rust library in general, but I decided it was finally time to share what I’m working on with the world. Code: https://github.com/austintheriot/wrend Live Demo Site: https://austintheriot.github.io/wrend/
-
My first Rust project, a raytracer based on Ray Tracing in One Weekend book
Demo: https://austintheriot.github.io/wrend/ray-tracer Code: https://github.com/austintheriot/wrend/tree/master/demos/ray_tracer
-
Junior Dev here -- How are we setting up Rust, WASM, and webpack?
I think initially I used their autogenerated templates and other's templates as well, but lately, in my own personal projects, I've started rolling my own Webpack config (v5) with WasmPlugPlugin, which seems to work decently well most of the time. Here's one of my recent frontend crates that is fairly standalone and can be copied if you want a starter template that has been recently updated and has a good chance of compiling / working correctly for you with minimal dependencies: https://github.com/austintheriot/wrend/tree/master/examples/vanilla_rs
-
[Media] Conway's game of life partially implemented in Rust
Code: https://github.com/austintheriot/wrend/tree/master/demos/game_of_life Demo: https://austintheriot.github.io/wrend/game-of-life
sdf-viewer
-
SDF Viewer: a fast and cross-platform Signed Distance Function (SDF) viewer, easily integrated with your SDF library
Afterward, this GLSL shader does the actual rendering. This shader is applied to a cuboid mesh that represents the bounding box of the object. The mesh is useful for only raytracing the part of the screen that may reach the object, and for extracting the rays for each pixel from the hit points. The shader simply walks along the ray for each pixel, moving by the amount of distance reported by the SDF on each position. If the surface is reached at some point, the normal is computed and the lighting is applied for the material saved in the closest voxel. To get the distance at a point that does not match the grid, interpolation is applied, leading to round corners if the level of detail is not high enough.
What are some alternatives?
generative-art - Generative Art while learning Rust
raymarching-workshop - An Introduction to Raymarching
wee_alloc - The Wasm-Enabled, Elfin Allocator
bauble.studio - a playground for making 3D art with lisp and math
wasm-pdf - Generate PDF files with JavaScript and WASM (WebAssembly)
curv - a language for making art using mathematics
fluid-simulation-rust - A rewrite of my fluid simulation project entirely in Rust
sdf - A Go library for signed distance function shape generation. Read as 3D printing shape design.
scanner - Document scanning from scratch
pattern_roller_maker - generate stl file of pattern roller from image
shadertoy-rs - A desktop client for Shadertoy written in Rust
MaterialMakerRayMarching - Make complex Ray Marching SDF objects using nodes with the Material Maker editor and this library