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.)
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.
To see what might peak you interest, the videos in [2] could be a good starting point.
[1]: https://www.coursera.org/learn/statistical-mechanics
[2]: https://matthias-research.github.io/pages/tenMinutePhysics/i...
I'll give you a simple example. For diffusion of heat between 2 points, the rate of change (first derivative) is proportional to the difference in temp between them. So you make an update rule for points on a grid that says "calc the average difference of a cell's temp with that of its neighbors, multiply by some constant, and that is the amount to update this cell at this time. Run that for every cell in parallel, many times." Then you tack on a visualization and you can watch the heat diffuse. A fun example would be the cooling of the proto-Earth. You can watch the crust form.
Heat diffusion is a good starter problem. So is gravitational interaction.
"Physical simulation" is a very broad scope, so your code for simulating fluids is going to be very different from your code for simulating planetary orbits, and at times it may feel a bit ad hoc. But at its foundation physical laws are written in differential equations and linear algebra.
So whatever algorithm lets you numerically integrate several inter-related variables is going to be broadly applicable to simulating any physical phenomena. At the simplest end of the spectrum you just naively approximate integration by brute force. Eg at each step just update your physical state variables by doing velocity += acceleration, position += velocity. This is called Euler's method, and while simple, it accumulates unacceptable errors rather quickly in most circumstance. The more advanced approach is to use a method like Runge Kutta. In circumstances where you have some known property, like say energy conservation, you can implement a method which explicitly imposes the constraint. This is good for cases where the motion is highly periodic as it prevents the numerical error from accumulating exponentially in orbits that spiral out of control.
Of course at some point you'll have to grapple with the issue of if you are simulating trajectories of free particles or values of neighboring grid points in a field. This question of how best to encode physical systems and simulate them cuts to the heart of physics.
I'll leave it at the old cliche "information is physical"
*I haven't looked at the specific parts for this board, the LEDs look nice and could be a little pricey.
e.g.:
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!
For a few hobby or toy things, the fixed rate board stuffing shops are the way to go.
He did (there are centroid files in the production folder, which tell the board house where to put the components), but you'd be surprised at how possible it is to assemble something like this by hand. You won't believe me, but I find it easier than through-hole soldering (because you don't have to keep flipping the board over).
But there's a 99.9% chance this was done in-house at JLC or PCBWay.
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.
Now whether you get it populated or not..
https://github.com/Nicholas-L-Johnson/flip-card/blob/main/ki...
That is based on the price for low quantity (1-500 pieces) though; if you were to build more than one board you would buy more LEDs, pushing the per-LED price (way) down. You can get 4,000 LEDs for $30.'
Edit: here is the LED in question, from the BOM [1].
their heart might be in the right place tbh. But that's my 2 cents.
Or is it really ChatGPTs 2 cents? Copy-pasting LLM responses is as useful as posting a "let me google that for you" link. It's a lazy response at a minimum.
You seem to think comment hierarchy equals a real hierarchy?
No one can contribute without the right sign off?
I’d probably even keep it in my desk to play with. After a few weeks I’d accidentally have this guy’s email/linkedin memorized for eternity
I remember a story linked from here, recently, where a designer submitted a CV that was a custom-made widget of some kind.
He got the job.
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.
The Bluetooth Bong was a vast improvement over the MIDI Bong.
MIDI aftertouch on the carburetor was a nice improvement over your grandfather's old Serial Acoustic 300 Baud ASCII Bong, but the Bluetooth Bong HID has a much higher bandwidth, multitouch chording, accelerometer tilt tracking, modular monophonic splash resistant microphone, and they weren't as easy to accidentally knock over because they were wireless. An extremely important feature if you have cats around.
But nothing beats a high-end spill-proof Rooᴙ 802.11be NVB (Network Video Bong) with fully submersible IPX8 smoke resistant stereo mics.
My first thought with this card was that it could be "gamified" into something that kids would probably love. A clique-y, social thing where kids could "pour" some of their fluid into another's card, with NFC or something. User preference colors that don't change when "poured" could help indicate how many different people have interacted with your card.
But enough spitballing. There's no killer idea there. Just something I'll be amused to see show up as a value-add for some other kind of toy, or whatever.
Then you can lay the fertilized eggs at any GPS coordinate to gestate and hatch later on.
That could start a whole genre of AI (Artificial Insemination) Life Simulation games.
Remember those little LCD cube block toys with the stick dudes that lived in 'em, then when you plug 'em together they interact? Those were the days.
This is a very good example, nice work !
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?
There was a whole game based on this sort of thing back on the Acorn Archimedes: Cataclysm https://www.youtube.com/watch?v=3Byyz1Vlv8w It got remade for the 360, but the original was regarded at the time as surprisingly impressive for the machines it was running on.
The problem is so much of the effect of a disco ball is irregular directional beams reflecting off it, which would be hard to do.
Wack font. Circuits exposed. Pixels with fat borders between them. An ugly charging port. But more stuff, packed into a small sleek volume than reasonably possible. Working perfectly.
That’s not Jobs. Oh, no. It’s effing Woz.
The guy is a true hardware engineer.
https://github.com/Nicholas-L-Johnson/flip-card/blob/main/me...
Like this one:
https://www.adafruit.com/product/5180?srsltid=AfmBOopEIapZEq...
But with supports along the sides that could solder one the top and/or bottom of the PCB. You'd have a notch cut out for the connector.
rather it's even smaller, it simply has the inner part of a usb c connector - exactly the thickness of the pcb
similar to https://github.com/cnlohr/ch32v003_3digit_lcd_usb/
mouse_•3h ago