Live data from Hacker News

Fidget

mattkeeter.com

21–30 of 57 posts

Re: Fidget

#21
Years ago in college I did a bit of work on a nuclear physics simulator (think: reactor modeling) that based its geometrical model on implicit surfaces, specifically R-functions (of which min(x,y) is an example), which have some neat properties such as being differentiable everywhere. This is a good introduction (and probably the only one in English): https://ecommons.cornell.edu/items/35ae0f68-1af5-4f28-8b8b-7...

I've been away from the nuclear field for a while, but I imagine it's still using a lot of legacy Fortran codes to do modeling. Fidget has some interesting possibilities as a kernel for a new simulation package.

Re: Fidget

#22

Oh wow. This would have been incredibly useful to have found when I was writing my own implicit-surface drawer. My approach is similar in some ways (interval arithmetic), and different in others (not as optimized, I directly produce GLSL for a fragment shader). Honestly I'm tempted to just toss everything away and replace it with (a reimplementation of) this. Dunno if I should be happy or sad about that.

Happy! You work in a field where you can both make your own tools and use tools others have created. Maybe you can steal some of his ideas and use them, or use his stuff and contribute to the project. either way, rad.

Re: Fidget

#23
Sorry, tangential but is that rust in the web editor? Do you have a wasm compiler or something? It seems super fast!

I was looking for a live-coding editor (or live preview? hot reloading with visualizer?) for doing creative coding with something like Nannou and after a bunch of searching I came up dry.

Re: Fidget

#24
post #23

Sorry, tangential but is that rust in the web editor? Do you have a wasm compiler or something? It seems super fast! I was looking for a live-coding editor (or live preview? hot reloading with visualizer?) for doing creative coding with something like Nannou and after a bunch of searching I came up dry.

> is that rust in the web editor?

From the post:

> Fidget includes bindings for Rhai, an embedded scripting language for Rust

https://rhai.rs/

Re: Fidget

#25
post #17

Hi, this is my project :) I particularly love this corner of CS because there's something for everyone – data structures and algorithms, low-level performance work, compilers, rendering / computer graphics, UI/UX for design tools, GPGPU programming, and more! I'll be answering questions in the threads as I see them, but feel free to connect on social media ( https://mattkeeter.com/links/ ) or follow my blog's RSS fee…

Neat! I remember contributing the expression parser code for the Knoll et. al 2009 work that you cited in your SIGGRAPH paper. That just rewrote a single user-friendly expression into nested function calls to our IA library in GLSL, without any sort of optimization.

You've clearly taken things waaay farther. Nicely done.

Re: Fidget

#26
post #17

Hi, this is my project :) I particularly love this corner of CS because there's something for everyone – data structures and algorithms, low-level performance work, compilers, rendering / computer graphics, UI/UX for design tools, GPGPU programming, and more! I'll be answering questions in the threads as I see them, but feel free to connect on social media ( https://mattkeeter.com/links/ ) or follow my blog's RSS fee…

Hi Matt, Since you're here I have a quick question. I did not do my homework so please excuse if that's too general or stupid.

How does Fidget differ from libfive and Ao, functionality wise?

Thanks in advance.

Re: Fidget

#27
post #17

Hi, this is my project :) I particularly love this corner of CS because there's something for everyone – data structures and algorithms, low-level performance work, compilers, rendering / computer graphics, UI/UX for design tools, GPGPU programming, and more! I'll be answering questions in the threads as I see them, but feel free to connect on social media ( https://mattkeeter.com/links/ ) or follow my blog's RSS fee…

Hi Matt, Since you're here I have a quick question. I did not do my homework so please excuse if that's too general or stupid. How does Fidget differ from libfive and Ao, functionality wise? Thanks in advance.

Here's a quick list, off the top of my head:

"Ao" was an early codename for libfive, so those are the same thing (at different stages of development).

Fidget is written in Rust, versus C/C++ for libfive. This makes it easier to use as a dependency (in Rust projects) and cross-compile to WebAssembly. Also, I don't have to debug segfaults anymore, except when touching the raw assembly in the JIT.

They both implement a similar set of algorithms (meshing, 2D and 3D rasterization).

Fidget has the potential to be faster due to its JIT, and is faster for 2D / 3D rasterization. (I suspect that the non-JIT interpreter is also faster at rasterization, for architectural reasons)

libfive has more effort put into its meshing algorithms, so it does a better job of handling edge cases (heh). I've heard reports that libfive is faster than Fidget at meshing, but haven't done much investigation.

Fidget is not limited to 2D and 3D functions: it can be used wherever you want to quickly evaluation graphs of math, with arbitrary numbers of inputs and outputs. libfive, on the other hand, is specialized to functions of the form f(x, y, z, *vars) -> v.

Extremely in the weeds: if you know what libfive's "feature"-flavored evaluator is, Fidget doesn't have it.

Re: Fidget

#28

Here is a thought experiment. What if 3D printers support implicit representation natively. Resin printers are basically physical marching cube machines. FSM would need an algorithm for following contours but should be doable.

Ultimately you'll still need to further process it into a set of physical step by step instructions for the instrument. I'd still rather have the slicer be separate software step so you can tweak the physical properties of the process -wall thickness, infill, temperature and speed, etc. But yeah, it should be possible to input an implicit representation into a slicer.

Re: Fidget

#29
Speaking as someone who's never done any sort of graphics work, this is really cool! I wish there were more demos though. The web editor has a single program, the repo itself only appears to have one Rhai program too (the one used for the web editor) so I can't just copy from that. It would be great if the web editor had a dropdown of programs to try, such as the one I see in the first image of the post.

Re: Fidget

#30
I've been meaning to do something like this (work on an abstract tree for surface generation) but using SDFs. The idea being that you have a target mesh/point cloud and then use hill climbing/annealing to reach a good tree that fits the desired shape.
Post reply on HN