Ultrathin business card runs a fluid simulation
24 comments
·August 8, 2025ChrisMarshallNY
hypercube33
I half expected this to have a button/mode to show custom QR codes...
mritchie712
GPT-o3 estimates it'd be $10 to $20 cost to make these. I could see someone running a niche business selling these (e.g. enterprise software sales rep trying to stand out).
Cthulhu_
How much does it cost? The guest passes for hacker conferences are full-on computers these days, if this is in the same price bracket it would be a great idea for those.
4gotunameagain
There's a BOM, you can find out. Plus some peanuts for the PCB :)
Now whether you get it populated or not..
https://github.com/Nicholas-L-Johnson/flip-card/blob/main/ki...
5-
i absolutely love the form factor!
a similar one was beamu (eink screen, nrf52 with bt): https://nicgardner.com/2020/05/09/beamu-first-impressions/
(this was an actual product, if a bit pointless. i have one still)
any others?
raincole
Off topic, but where should one start learning writing physical simulation?
Several years ago I ran into this project [0] and got overwhelmed even the algorithm can be written in 88 lines of C++. I realized that out of all CS topics, physical simulation is probably the one I knew the less (not saying I'm a compiler/database expert or something, but at least I've implemented a toy compiler and some basic data structures used in database. When it comes to physical simulation my bran just draws a blank.)
Cthulhu_
One thing that helped me was doing some tutorials for pico-8, an intentionally 'weak' game platform, one of which is a platform game with a simple / understandable inertia / gravity simulation (jumping, running left/right; think Mario). It was understandable enough with an x / y position for the character and a delta-x / delta-y representing their current speed. Every frame the dx / dy would get changed depending on player input and/or character state.
Ex: if player presses jump button, set state to 'jumping' and dy to 1. Every frame, dy = dy * 0.9. When dy <= 0, set state to 'falling'. Every frame, dy = dy * 1.1 until dy = 1 (terminal velocity). Then add some collision detection.
I think those basics are also behind the simpler physics simulations, the 'falling sand' types would be ideal for an application like this.
maccard
Rigid body simulations are much much simpler. There’s a siggraph course from 2001 [0] which is a bit of a dense read but it will bring you all the way up to a full blown rigid body simulation and understanding the math behind it too.
beardyw
Though in this case there's not much more than 500 points, which even if you scale up is manageable.
QuiCasseRien
I love when people don't have to talk to explain how of hell they are expert in a domain.
This is a very good example ,nice work !
RMDNZ
Amazing. Just don't show it to Patrick Bateman.
tetris11
Practically pregnant with electric potential
ducktective
"I can't belllieeeve RMDNZ preferred L-Johnson's card to mine"
DonHopkins
Instead of a business card, I'd love an ultrathin pleasure card you can refill with virtual beer and virtually drink! You could input your weight, and it could track you BAC!
I made "PalmJoint", a beamable Palm pleasure card for CodeCon 2002, when everybody was beaming their contacts around by IR at conferences, I would beam an interactive doobie simulator a bunch of people could play together in a circle. Each person gets their own doobie, and you can have contests to see who can virtually smoke theirs the quickest, or keep it lit for the longest time. I never get around to implementing an IR token passing network:
https://donhopkins.com/home/images/PalmJoint.png
https://donhopkins.com/home/PalmJoint/Src/PalmJointMain.cpp
Some conferences of the era had kiosks with IR LEDs that beamed out a Palm app with a conference map and schedule, which would have been great to hijack for beaming out PalmJoints instead.
Cthulhu_
I love it; I bought a secondhand Palm just before smartphones became a thing for cheap and had a lot of fun with it. I wonder if I still have it somewhere and whether it still works, I haven't seen it in ages though so probably not.
serf
small ad-hoc networks like that with IR and early bluetooth were a lot of fun.
DonHopkins
For beaming a lit joint around, you would definitely need an acknowledgement that it was safely passed, lest it drop on the floor! But how would you prevent duplication if several people received the same joint? I'd just mark that bug "Intended Feature: Will Not Fix."
The Bluetooth Bong was a vast improvement over the Midi Bong. Having aftertouch on the carburetor was nice, but the Bluetooth Bong HID has a much higher bandwidth.
rwmj
Would love to see more information about how it was built. He must have worked with a company that can do the surface mount assembly?
Cyan488
Electronics can be surprisingly easy and cheap to build these days. He designed the circuit and layout with software called KiCAD (free and open source) then submitted the designs to a fabrication house - probably a popular offshore one - that easily can handle that level of board and component placement complexity. It would probably cost only a few hundred to build and ship, with 1 month turnaround time.
You can also hand-assemble surface mount parts by applying solder paste carefully to the pads, then placing all the components on the paste and heating the board until all the solder melts. That would have very time consuming for all those LEDs!
Cthulhu_
There's also some homebrew pick-and-place machines and soldering ovens, but that's probably a bigger upfront investment than the offshore companies can offer.
Retr0id
You can get boards like these made for single-digit dollars per unit* even at prototype scale, through companies like jlcpcb.
*I haven't looked at the specific parts for this board, the LEDs look nice and could be a little pricey.
x187463
Very cool. Though, I was waiting for the video to properly 'shake' the card.
mouse_
Nice work, awesome presentation
Very nice, but probably a bit too expensive to just hand out.
I knew a chap that had a similar hardware business card (I don't remember exactly what it did, but it wasn't as cool as this one).
I remember that his card was pretty scuffed up, and he insisted I give it back, after he handed it to me. Bit weird.