[HN Gopher] Curves and Surfaces
___________________________________________________________________
Curves and Surfaces
Author : todsacerdoti
Score : 492 points
Date : 2021-11-02 16:14 UTC (6 hours ago)
(HTM) web link (ciechanow.ski)
(TXT) w3m dump (ciechanow.ski)
| rkhacker wrote:
| Worked on implementing such functions as part of larger project
| to mimic CATIA in Xenix system. I was and still fascinated with
| computer graphics and it was a dream project to work straight out
| of school. At that time we relied heavily on the computer
| graphics book by Foley et. al. It should be still a comprehensive
| book for someone trying to wet his feet and beyond in computer
| graphics.
| phkahler wrote:
| Awesome. But. I didn't like the part where a 3D surface with
| linear interpolation was turned into a 2-D quadratic by placing 2
| control points on top of each other. Yes, the interpolation
| formula becomes the same as a 2nd order Bezier, but I'm not sure
| the folding of the 3d surface like that was necessary. I though
| the author was going to show something new that I hadn't seen
| before, but soon ended up using the repeated-interpolation to
| describe higher order curve. That one part seems like a
| distraction to me.
| aidenn0 wrote:
| Remember, curves are more computationally expensive than straight
| lines...
|
| It's the law of spline demand.
| Lammy wrote:
| > "a limited number of small points that you can drag around to
| change the mask's shape"
|
| "It's-a meee!" https://www.youtube.com/watch?v=Nn-Rz6lBGW0
| franciscop wrote:
| I find these play-with me mini-apps incredibly useful, a
| technique used by the author Bartosz in other articles:
|
| https://ciechanow.ski/naval-architecture/
|
| https://ciechanow.ski/internal-combustion-engine/
|
| https://ciechanow.ski/cameras-and-lenses/
|
| https://ciechanow.ski/gears/
|
| 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!
| [deleted]
| askytb wrote:
| He answered that here:
| https://twitter.com/BCiechanowski/status/1387790984356917249
|
| For the internal combustion engine his response was: "I started
| working on it around two months ago on most weekends and many
| weekday evenings"
| zbtaylor1 wrote:
| These are incredible, I need more!
| ilaksh wrote:
| It would be interesting to connect things like Bezier patches
| with constructive solid geometry. So that by recognizing the
| curves in the surfaces and combinations of them you could then go
| to a more compact semantic representation.
| zestyping wrote:
| Really, really beautiful work. It's an entire course on 2-D and
| 3-D modelling that takes you all the way from polygons to
| subdivision surfaces.
| hld wrote:
| This is really good - I'd love to see an article just about how
| he made those mini-apps.
| MH15 wrote:
| This is amazing. I'm taking a class in computational geometry
| currently, and this single article better explains many of the
| concepts covered than the professor, textbook, or any resources
| I've found online. The explanation of B Spline Basis functions is
| particularly useful.
| kruxigt wrote:
| I find it amazing that this runs so smooth compared to 99% of the
| web. It is in my experience typical that a guy of this caliber is
| also more skilled than 99% of people in a field he's not
| specialised in.
| jcun4128 wrote:
| Always like the interactive parts, canvas witchcraft
| WhitneyLand wrote:
| This kind of immense effort that's put into making concepts easy
| to understand is greatly appreciated.
| SavantIdiot wrote:
| A lot of the engineering math associated with splines (NURBs) and
| surface approximations came from Citroen, Peugeot and Renault,
| the car makers, in the mid-20th century. I read a great book on
| this back in the 80's and can't remember the name. It was about
| the early days of CAD and its origins.
|
| 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.
| jacobolus wrote:
| The use of such splines comes earlier from boat building.
|
| The process looks like:
| https://www.youtube.com/watch?v=oKJagvumvCI
| SavantIdiot wrote:
| I didn't know that; that's a great video, thanks! I'm crazy
| jealous of his workshop.
| jorts wrote:
| The whole series is great and he releases videos every two
| weeks. The shop in that video he was able to use thanks to
| a nice couple who own it. He's since had to move the boat
| as a neighbor complained about him and he's in the Port
| Townsend shipyard.
| nwatson wrote:
| Gerald Farin has written many books, articles, publications on
| Computer-Aided Geometric Design (CAGD) stretching back a long
| way, here's a sample of books on Amazon:
| https://www.amazon.com/Books-Gerald-Farin/s?rh=n%3A283155%2C...
| ... had a stint at Mercedes-Benz
|
| (edit: Mercedes-Benz)
| agumonkey wrote:
| People should watch the UNISURF system used in those days
|
| https://www.youtube.com/watch?v=c0_a6r2JaWQ
|
| they'd be surprised
| bmitc wrote:
| If you can remember the name of that book, I'd love to know it!
| [deleted]
| travisgriggs wrote:
| This is so cool. It's well written and engaging. Good balance
| between text and interactive graphics. More learning texts should
| be this way.
|
| 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.
| streamofdigits wrote:
| I guess this site should be sent to anybody saying javascript
| should be blocked in web browsers... In the end whether a
| technology is used to track and exploit or educate and delight is
| entirely up to us.
| nixpulvis wrote:
| Aren't most things neatly placed in <canvas> tags? Not to
| mention that it's basically all some form of web GL, which
| could avoid JS pretty easily is it wanted to these days.
|
| What we want blocked isn't all of javascript, it's some of the
| browser APIs.
| Kiro wrote:
| How would WebGL work without JavaScript? Also have a hard
| time seeing how the input could be handled without JS.
| nixpulvis wrote:
| https://webassembly.org/
|
| 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
| streamofdigits wrote:
| Haven't even started exploring everything (hope to find the
| time to do so), but in random dive I see lots of handcrafted
| js
|
| https://ciechanow.ski/js/gears.js
| agumonkey wrote:
| bezier curves helped me connect simple (geometric) ideas like
| repeated middles to polynomials.
|
| 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)
| Sillzen wrote:
| For those that enjoy this style of article, Amit Patel's Red Blob
| Games site[0] has similarly well-written and interactive
| articles, mostly regarding pathfinding and map generation in
| games.
|
| 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/
|
| [1] https://www.redblobgames.com/making-of/line-drawing/
|
| [2] https://simblob.blogspot.com/
| monkeycantype wrote:
| ASK HN COMMENT: Can anyone here point to / have anything to add
| on the mathematics of defining curved surfaces with greater than
| 4 edges? Most software requires you to define patches with 3 or 4
| edges, in some cases the natural curves you would want to model
| create areas of 5 or more sides.
| atoav wrote:
| I have been NURBS modelling professionally for a while, the way
| >4 sided curved surfaces are usually done is by bulding a <=4
| sided surface and then intersecting it with another surface to
| trim a corners away. So techically most 5, 6 etc sided NURBS
| surfaces you see in the wild are just 4 sided surfaces with
| part of the surface hidden.
| wetmore wrote:
| Simply fantastic! This is really impressive work and very clear
| too.
| romwell wrote:
| An excellent exposition! This is the way mathematics should be
| taught.
|
| 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...
|
| [7] https://en.wikipedia.org/wiki/M%C3%B6bius_strip
| ensiferum wrote:
| Thanks for these!
| jbluepolarbear wrote:
| Curves and Surfaces was my favorite class in college and I've
| tried to apply it where ever possible.
|
| I recommend this video from Freya Holmer on Bezier curves. Really
| cool: https://m.youtube.com/watch?v=aVwxzDHniEw
| lkuty wrote:
| Really liked this one on Bezier curves: http://jamie-
| wong.com/post/bezier-curves/
___________________________________________________________________
(page generated 2021-11-02 23:00 UTC)