Michael F. Bryan
adventures.michaelfbryan.com · Personal blog · on HN since 2019
Michael F. Bryan, a Rust programmer, writes about Rust, FFI, WebAssembly, audio processing, and applying the ECS pattern beyond game engines.
What HN saysHN commenters link his ECS-outside-games article; one enjoyed it though noting it stays in a simulation and graphics context, another calls ECS the architectural pattern.
23HN people shared it
6linked it in comments
45stories submitted
1.5Kstory points
1 year agolast shared
2019people per year2026
Most-shared posts
- 1A Thought Experiment: Using the ECS Pattern Outside of Game Engines4 people · 184 points · first shared 2019 · 73 comments on HN
- 2How to not rewrite it in Rust3 people · 452 points · first shared 2019 · 224 comments on HN
- 3Words Are Hard – An Essay on Communicating with Non-Programmers3 people · 11 points · first shared 2020 · discussion on HN
- 4FFI-Safe Polymorphism in Rust: Thin Trait Objects3 people · 3 points · first shared 2020 · discussion on HN
- 5Audio Processing for Dummies2 people · 400 points · first shared 2019 · 47 comments on HN
- 6How to rewrite it in Rust2 people · 242 points · first shared 2019 · 39 comments on HN
- 7WASM as a Platform for Abstraction2 people · 99 points · first shared 2019 · 84 comments on HN
- 8Deserializing Binary Data Files in Rust2 people · 34 points · first shared 2021 · 22 comments on HN
- 9I Reverse Engineered the LastPass CLI Tool2 people · 5 points · first shared 2020 · discussion on HN
- 10A Pragmatic Approach to Global State2 people · 5 points · first shared 2020 · discussion on HN
- 11Geometric Constraint Solvers Part 1: Algebraic Expressions2 people · 4 points · first shared 2020 · discussion on HN
- 12Common Newbie Mistakes and Bad Practices in Rust: Bad Habits2 people · 3 points · first shared 2021 · discussion on HN
- 13Creating Interactive Applications While Maintaining Your Sanity2 people · 3 points · first shared 2020 · discussion on HN
- 14Rust Closures in FFI2 people · 3 points · first shared 2020 · discussion on HN
- 15How to RiiR2 people · 2 points · first shared 2020 · discussion on HN
What HN people wrote when they linked it
joeblubaugh · 2025-07-23
They’re very common in video game programming and visual effects and uncommon elsewhere. I enjoyed this article, though it’s still about using ECS in a simulation / computer graphics context.
https://adventures.michaelfbryan.com/posts/ecs-outside-of-games/
0xCMP · 2021-09-08
You can build C projects using Rust and Cargo as well[0], but it requires more work than Zig appears to need.
Rust also has good C FFI story and honestly I think we will still see a lot of important code rewritten in Rust.
That said, a more ergonomic C which seamlessly replaces the often bloated build configuration of C/C++ projects while allowing a far nicer language to slowly replace the existing code feels like TypeScript for JS (which I consider a good and smart thing). Definitely agree it's going to get far more use than I'd originally have guessed.
[0]: https://adventures.michaelfbryan.com/posts/how-to-riir/
adamnemecek · 2020-01-31
I think that Entity-Component-System is THE architectural pattern for building complex applications
https://en.wikipedia.org/wiki/Entity_component_system
http://adventures.michaelfbryan.com/posts/ecs-outside-of-games/
phkahler · 2024-05-21
As one of the Solvespace maintainers I have a few comments:
1) You don't want just 2D constraints, 3D is better. If you were writing in C++ I'd say just take our constraint solver (Like Dune3D did). Since you're loving Rust, I can point you to the work of Michael F Bryan who wrote one in Rust and blogged about it here: https://adventures.michaelfbryan.com/posts/constraints-part-1-expressi…
I think his code is over at gitlab. I haven't looked at it in a couple years. He wrote that after I nerd-sniped him ;-)
2) For geometry kernels... I've got 3 classes of bugs I want to squash in the Solvespace kernel and then it should do booleans pretty reliably, but I haven't had the time. Ours is just under 6k LOC so you could learn a lot from it. My email is the same ID at gmail if you want to ping on this topic. Its been a while since I looked at Truck and I thought it had stagnated a bit. This is a really hard problem, which is why there are so few options out there even in the commercial world. Even triangulating a trimmed NURBS shell is tricky.
3) History/feature tree is closely related to the "topological naming problem" that FreeCAD has. Solvespace handles this by creating each entity from a set of known things. If you try to recreate (regenerate in our lingo) it will just return a handle to the existing entity rather than creating a new one. In other words, every entity "came from…
busterarm · 2020-11-03
Well, if these weren't the results that the community produces over and over and over and over again. Look up any of the long list of "X in Rust" Show HN posts that there have been.
It's kind of a meme at this point.[0,1,2]
It's going to start effecting interviews. I'm saying this as a hiring manager who has to evaluate what projects candidates spend their time on and what they are going to be like to work with. People who oversell their work or don't know how to evaluate value go into the hard pass pile.
And no, I'm not shitting on them for having a hobby project. I'm shitting on them for clearly demonstrating that they don't understand what the very mainstream software they're actively trying to compete with does.
[0]:https://transitiontech.ca/random/RIIR
[1]:http://adventures.michaelfbryan.com/posts/how-not-to-riir/
[2]:https://news.ycombinator.com/item?id=21334510 (which is just the comments here from [1], but also interesting.
virtualritz · 2020-02-27
I recently picked up a C++ codebase I wrote maybe 30% myself and which was last touched in 2013. It's a plug-in for a DCC app.
The 3rd party API it communicates with was changed so refactoring was inevitable.
Before I started refactoring I decided to make everything 'less ugly' by moving it to C++17. Which would also help me get back into the code, after eight years.
I spent two days on this. Then I decided: fuck it. I will RIIR™.[1]
It will mean that it will take me at least two months to get a beta of the product with feature parity vs. maybe a week to port the old codebase to the new API.
But on the other hand the C++ code is littered with stuff that 'just works' but can explode in your face and which eventually needs some safety net written around it. Which will likely take at least two months to do properly.
The truth is: after one and a half years of Rust C++ feels painfully ugly.
For context: I started with C++ with Borland's TurboC++ (moving from C) when I was 15. I used C++ for almost 30 years by now. It's about time.
[1] Yes, I did read http://adventures.michaelfbryan.com/posts/how-not-to-riir/