Curves and Surfaces
ciechanow.ski
ciechanow.ski
Like, the control points on splines were called "ducks", which were weights attached to spring steel suspended from the ceiling of the studio, which caused the steel to bend into particular shapes computed mathematically beforehand by the design engineers. These curves were used to guide model making. It was a fascinating book.
The process looks like: https://www.youtube.com/watch?v=oKJagvumvCI
It is true that a boat is a curved shape (as were cars or aeroplanes before the mathematical models were devised) but the construction is quite different. To state the obvious, there are no control points. Instead you get some cross-sections for various different planes, then scale it up and manually try to achieve G2 continuity by comparing the points described in multiple places in the plan (ie in different cross sections from different but intersecting planes), adjusting them, and springing batons to create curved lines. You get different shapes depending on how thick/springy your baton is. Once more of the boat is built, the process continues with adjustments and baton-springing to try to ensure that curvature is continuous and it’s derivative is not too large.
But these plans would traditionally be produced by starting with a scale model for half the boat (often this model would be scaled up straight into the boat without plans in between). And traditional boat building (say 100 years ago) would often not be particularly true to the plans anyway, treating them much more as a guide (a case where this matters more is some of the traditional steel shipbuilding in Scotland where the yards were too small so boats were built in two halves then perfectly joined together at the end).
Now compare this to the OP which is about various mathematical models for curves and surfaces, and the comments above which talk about the history of those models. I think the automaker usage described above was about the problem of going from the computer-described curves to the real world and I guess CNC at the time couldn’t do it properly (you surely aren’t going to CNC-mill a car model out of a massive block of metal) hence transforming a computer description into something suitable for a physical model—fixed lengths of spring steel plus weights. Spring steel sounds a bit like springing batons but I think that is where the connection ends and I think this connection has little to do with the rest of this reply chain.
Though to be honest I’m not particularly sad that you posted it.
But they did use physical splines to draw smooth curves long before car/airplane designers.
In computer software, bezier curves have always been common in 2d desktop publishing (fonts, adobe illustrator and its predecessors etc.) but 3d software had an ambivalent relationship where animation software (3DS-max etc.) always used them but games avoided them due to higher computation time than straight meshes, hence lower framerates. Of course this is changing now.
https://www.youtube.com/watch?v=c0_a6r2JaWQ
they'd be surprised
Sources:
http://mae.engr.ucdavis.edu/~farouki/bernstein.pdf Wikipedia
(edit: Mercedes-Benz)
I spent years repairing IBM rotating chain mainframe printers (1403) in the field in the 80s, and I never really understood what I was doing. When I saw Ken Shirriff's animation of how hammer timing works, I instantly got it.
The quick summary is that the characters are on a rotating chain, and the printer has 132 hammers, one for each column. When the character lines up with the column the hammer fires. Thus, a whole line is printed very fast.
This sounds straightforward, but the implementation is surprisingly tricky to make it optimized. The complicated part is the vernier spacing between the chain and the hammers, so one hammer lines up at a time, and this timing is synchronized with the core memory access speed so the computer can check the character in the print buffer at that position at the right time.
Well, not really happy come to think of it :)
If you've had any experience Ken with 3890 check sorters, those were true electromechanical marvels.
The museum in Binghamton, NY has an IBM 1255 check sorter, which is puny in comparison to the 3890, which is a long, long, long machine.
What we want blocked isn't all of javascript, it's some of the browser APIs.
Again, it's all about the interface the browser provides. They could decide to remove this API for example: https://developer.mozilla.org/en-US/docs/Web/API/History
How is that any better than 'javascript'?
https://ciechanow.ski/naval-architecture/
https://ciechanow.ski/internal-combustion-engine/
https://ciechanow.ski/cameras-and-lenses/
Bartosz if you are here (username doesn't seem like it) how long does an article like this take to make? Looking a bit deeper and seeing how there are 10k LOC just in curves.js, and the curves.js seems custom for this, I'd guesstimate 1-3 months of fulltime work.
In any case, thank you for these incredible works of art and science! I had only seen a couple before so I'll have a deep look into the others!
For the internal combustion engine his response was: "I started working on it around two months ago on most weekends and many weekday evenings"
The only minor thing I might add is some "sectioning", it's pretty long as a single linear evolution.
What would be cool in a very meta way, is if someone wrote the "this is how this kind of page is built", layering up in the same progressive way, that broke down the different pieces of JS, CSS and HTML.
I recommend this video from Freya Holmer on Bézier curves. Really cool: https://m.youtube.com/watch?v=aVwxzDHniEw
(I’m adding this because he’s too modest about the quality of his work & solicitation. I’m happy to solicit for him.)
It's the law of spline demand.
This is a great explanation of Gaussian curvature and Bezier curves, splines, and patches, B-Splines, NURBS, and subdivision surfaces. It reads like a story, and nothing is introduced without the reader having an understanding why it's needed, what problem it solves, and how. One thing I wish was mentioned (in the final notes, perhaps):
The surfaces formed by dragging lines in space are called Ruled Surfaces, and have many interesting applications in fields ranging from pure math to architecture[1].
If you have ever seen string art in two or three dimensions[2], it's the same thing.
Hyperboloid[3] is an example of particular importance, as it allows for building light, structurally sound structures - particularly, towers and domes[4].
You have walked up a Helicoid[5] if you ever went up or down a spiral staircase[6]. This would give you an intuition about the seeming paradox of having a curved surface made out of straight lines.
The Mobius Strip[7] is a ruled surface of a special kind: it only has one side (an ant crawling on a Mobius strip would eventually walk over both sides of the piece of paper it was made from, without ever touching the boundary).
It has always surprised me just how much complexity one can get out of one simple rule. But that's why math is interesting :)
[1] https://en.wikipedia.org/wiki/Ruled_surface
[2] https://www.guidepatterns.com/wp-content/uploads/2015/01/3D-...
[3] https://polyhedr.com/hyperboloid-net.html
[4] https://en.wikipedia.org/wiki/Hyperboloid_structure
[5] https://en.wikipedia.org/wiki/Helicoid
[6] https://www.architectureartdesigns.com/16-elegant-modern-spi...
He also wrote an article[1] about how he creates the interactive elements of these articles, and a lot of "background" information about the articles on redblobgames.com can be found on his other blog[2].
[0] https://www.redblobgames.com/
So beautifully demonstrated and explained. Thanks for posting this!
it's a crime that kids don't get to see that connection, it's as fun as profound (and it blows every lesson about solving quadratic polynomials with a closed form solution out of the water IMO)
"It's-a meee!" https://www.youtube.com/watch?v=Nn-Rz6lBGW0