The curvature is not unique to apple though. This is widely used in car manufacturing for example. Turns out not having a hard transition between no curvature (straight surface) and some kind of radius (so a curvature of 1/r) looks like shit on very reflective surfaces, because a perfect flat mirror suddenly transitions into a stretched or squashed one.
So you can go and make those transitions flawless by making sure the curvature combs transition into each other as well (basically a set of spaced out lines which you draw perpendicular to the line in question where the magnitude equals the curvature). If the curvature combs meet at the transition, the transition looks okay. If the curvature combs are tangential to each other it looks better. You can also add a second order curvature comb to the first one and make sure these connect as well etc.
Ok, we've taken uniqueness out of the title above.
(Submitted title was "Apple's Unique Device Curvature". I assume that rewrite was intended to replace the linkbaitiness of the article title, which is in keeping with the site guidelines: https://news.ycombinator.com/newsguidelines.html)
> So you can go and make those transitions flawless by making sure the curvature combs transition into each other as well (basically a set of spaced out lines which you draw perpendicular to the line in question where the magnitude equals the curvature).
Would this be like the illustrations in the article labled "curvature comb showing tangency" and "cuvature comb showing curvature continuity"?
Most people doing font design also have a keen understanding of this.
Even if often more intuitively that through maths.
That said, in 2D you can get away with tangent continuity (C1) and stuff looks good.
I.e. while people may be able to tell the difference between a square with corners that have been rounded using quadratic arcs and one that uses cubic arcs or is a superellipse of some sort, these are all still looking fine.
In 3D, outlines will also look ok but a soon as you have shading anything that is not curvature continuous (C2) will stick out sorely.
The term most often used for the visual artifact that ensures is 'broken highlights' (see the photos in the article).
For example, if you write displacement or bump shaders and you transition between ('smooth') functions and want to maintain a smooth surface appearance, smoothstep()[0] is not enough. It is only C1 continuous.
You need a higher order variant, e.g. Ken Perlin's own improved version that is C2 continuous[1].
CAD software usually has zebra strip analysis shading which makes these things stick out so they can be fixed by rebuilding/retopologizing surfaces.
All major roads do this too. If the transition from a straight line to moving on a circular path happened instantly, then drivers would have to instantly turn their steering wheels to the correct angle for the turn. Very very occasionally i'll encounter a turn with that discontinuity and it feels really unsafe and jarring. I wouldn't be surprised if some residential roads were intentionally designed this way to help limit speed.
The squircle was actually Nokia's design language they used for Meego[1]. Back then Apple just used basic squares with rounded edges, the "unique" curverture mentioned here happened later.
I wish they would put in at least some basic effort into smoothing that sharp edge where wrists often rest when using the MacBook, rather than just the curvature of the corner. Any cheap laptop is nicer to my wrists than a MacBook.
Apple has beautiful squircle curves the rest of us can't have unless we want expensive CAD tools and extra JS files, but they also have plenty of sharp transitions. Look at their cables, that have no strain relief, being a bad influence on every other cable for a decade.
It's basically just Bauhaus design but with a few nice soft features, it's gonna be a bit uncomfortable, it's gonna be expensive, it might compromise functionality, all to create a sense of precision, authenticity, and high-endness.
Also: if they could create a gap between the screen and the keys, so the screen is not always smudged after closing the MacBook. Aka, if you use your MacBook as a laptop, the screen will be dirty even if you are careful to never mistakenly touch it.
But then you would have a rounded surface matched up with a sharp one (the top of the display) when you close the lid and that wouldn't look sexy at all. Two rounded edges would be even worse.
Is this equivalent to saying that Apple’s rounded corners have a continuous second derivative while naïve rounded corners only have a continuous first derivative but a discontinuous second derivative? Or am I misunderstanding this?
That is roughly correct. For a curve with smooth parametrization f(t) = (x(t), y(t)), with f'(t) ≠ 0 for all t, the curvature at the point f(t) is defined to be κ := |(f'(t)/|f'(t)|)'| -- the magnitude of the first derivative of the unit tangent vector. This is a nonnegative quantity, and is well defined, that is, independent of the specific parametrization of the curve (as legosexmagic said, you need to do something like this to get a quantity independent of the parametrization, but it is essentially a "normalized" second derivative).
The curvature comb consists (it seems to me) of a normal line segment at each point, whose length is directly proportional to the curvature there.
thats pretty much it yes. the reason they dont just say 2nd derivative is that the derivative isnt a geometry property. you can have two curves with the same shape but different derivatives.
curvature only depends on the shape of the object.
I can finally put some words on this. Tangentially (no pun intended) in CSS, the poor rendering you get out of an ambitiously border-radius'ed button has been driving me mad for years; time to get down the rabbit hole to see how to replicate that look on the web.
I had the exact same thought: How to do this in CSS?
Please follow-up on this thread with any discoveries or learnings, would be interesting and cool to learn how to replicate the nice soft curve for web assets. Depending on how many different semi-reasonable approaches exist, this subject and analysis would also make for a compelling and blog article.
Edit: Thank you Charles - wow you're so quick to have unearthed and replied with squircle resources in the time it took for me to compose the three sentences above.
p.s. CharlesW: thanks for your helpful and informative comments in general, I consistently look forward to reading your comments whenever I see one. Cheers and happy holidays!
The fun hardware aspects of this are how they choose to form curves for the aluminum MacBooks using cold forging to get create the broad curves of the device and then post-machining the keyboard, chamfered (angled) edges, and form tapping the screw boss threads - ie pressing not cutting the threads into the material.
Variable radii curves take forever to machine and must be polished, so that's only done on the cold forging die (and takes forever to do), so the die can then impart the geometry on the aluminum blank in only seconds in the forging press.
This is also how high-end aluminum car wheels are made with all their complex curvature.
Funny enough, they don't cover the forging in this video that describes most of the rest of the process, so I think Apple must've not wanted to talk about it, as least back then.
This is all very standard stuff in product design. It’s more just a surprise to UI designers because 2D design tools are very poor and don’t include superellipse as an option.
I recall this being annoying for me as an app developer trying to perfect the app icon. You upload the app icon as a square image, and Apple applies the round corners when they distribute it. I wanted to preview how it’d look on the App Store (back when every app submission would take weeks to get approved), but found the rounded corners from GIMP just didn’t match. At least they had stopped applying gloss effects by then which totally ruined the colors.
Very cool article! Thanks for sharing. Is numpy just global in Python now? I see it everywhere, and I eventually sound it out. Yet I never fail to have a few moments where I go, “Wait, what is ‘np’? Oh, yeah… Numpy.” And I always feel like just listing it as an import in the snippet would’ve solved it.
AFAIK Alias (which the article say is in use at Apple) uses non-rational uniform B-splines (or NURBS). Covered at 1:02:35 in the awesome video you linked.
Afaik those patents don’t describe continuous curvature, but just general curved bodies.
Apple’s use of continuous curvature in iPhones came around iOS 7 iirc. I might be mistaken but I think they’re subtly but consequentially different subjects.
So who else is sometimes confused with the new strange curves on the notifications? For some time now I often think they are a stack when they ar not. It’s because of the shape, not sure how to put this in words but the lower part of the curves is way more stretched out than than the vertical. It’s made worse because of my dark mode and dark bg probably.
I guess I have really bad eyes but I can’t tell the difference at all. They both look like rounded corners to me. I don’t think the aesthetic effect is that pronounced. I’d like to see the author do a blind taste test and be able to identify this magical “curvature comb” without seeing the brands.
I think it’s definitely something that’s visible in 3d on a somewhat reflective surface, but it’s definitely harder to tell projected top down in 2d for me.
edit: it’s definitely subtly noticeable in the image posted by sibling
I have never liked this roundness in any product. It somehow reminds of children toys. Apple has them. Most cars have them. It just give this supreme baby toy vibe to me. I never knew what it's called but this article finally explained it.
atoav|3 years ago
So you can go and make those transitions flawless by making sure the curvature combs transition into each other as well (basically a set of spaced out lines which you draw perpendicular to the line in question where the magnitude equals the curvature). If the curvature combs meet at the transition, the transition looks okay. If the curvature combs are tangential to each other it looks better. You can also add a second order curvature comb to the first one and make sure these connect as well etc.
fmajid|3 years ago
CharlesW|3 years ago
dang|3 years ago
(Submitted title was "Apple's Unique Device Curvature". I assume that rewrite was intended to replace the linkbaitiness of the article title, which is in keeping with the site guidelines: https://news.ycombinator.com/newsguidelines.html)
Terretta|3 years ago
Would this be like the illustrations in the article labled "curvature comb showing tangency" and "cuvature comb showing curvature continuity"?
virtualritz|3 years ago
Most people doing font design also have a keen understanding of this.
Even if often more intuitively that through maths.
That said, in 2D you can get away with tangent continuity (C1) and stuff looks good.
I.e. while people may be able to tell the difference between a square with corners that have been rounded using quadratic arcs and one that uses cubic arcs or is a superellipse of some sort, these are all still looking fine.
In 3D, outlines will also look ok but a soon as you have shading anything that is not curvature continuous (C2) will stick out sorely.
The term most often used for the visual artifact that ensures is 'broken highlights' (see the photos in the article).
For example, if you write displacement or bump shaders and you transition between ('smooth') functions and want to maintain a smooth surface appearance, smoothstep()[0] is not enough. It is only C1 continuous.
You need a higher order variant, e.g. Ken Perlin's own improved version that is C2 continuous[1].
CAD software usually has zebra strip analysis shading which makes these things stick out so they can be fixed by rebuilding/retopologizing surfaces.
[0] https://en.m.wikipedia.org/wiki/Smoothstep
[1] https://en.m.wikipedia.org/wiki/Smoothstep#Variants
yummypaint|3 years ago
ginko|3 years ago
[1] https://interuserface.net/2011/06/own-a-shape/
muro|3 years ago
eternityforest|3 years ago
It's basically just Bauhaus design but with a few nice soft features, it's gonna be a bit uncomfortable, it's gonna be expensive, it might compromise functionality, all to create a sense of precision, authenticity, and high-endness.
muro|3 years ago
joezydeco|3 years ago
xnx|3 years ago
nequo|3 years ago
Is this equivalent to saying that Apple’s rounded corners have a continuous second derivative while naïve rounded corners only have a continuous first derivative but a discontinuous second derivative? Or am I misunderstanding this?
yshklarov|3 years ago
The curvature comb consists (it seems to me) of a normal line segment at each point, whose length is directly proportional to the curvature there.
legosexmagic|3 years ago
curvature only depends on the shape of the object.
amelius|3 years ago
superzamp|3 years ago
metadat|3 years ago
Please follow-up on this thread with any discoveries or learnings, would be interesting and cool to learn how to replicate the nice soft curve for web assets. Depending on how many different semi-reasonable approaches exist, this subject and analysis would also make for a compelling and blog article.
Edit: Thank you Charles - wow you're so quick to have unearthed and replied with squircle resources in the time it took for me to compose the three sentences above.
p.s. CharlesW: thanks for your helpful and informative comments in general, I consistently look forward to reading your comments whenever I see one. Cheers and happy holidays!
CharlesW|3 years ago
App: https://squircley.app/ Code: https://dev.to/georgedoescode/codepen-soften-up-your-designs...
davidbarker|3 years ago
https://iamvdo.me/en/blog/smooth-corners-with-css-houdini
I would love it to be built into browsers as standard.
somat|3 years ago
nickpinkston|3 years ago
Variable radii curves take forever to machine and must be polished, so that's only done on the cold forging die (and takes forever to do), so the die can then impart the geometry on the aluminum blank in only seconds in the forging press.
This is also how high-end aluminum car wheels are made with all their complex curvature.
Funny enough, they don't cover the forging in this video that describes most of the rest of the process, so I think Apple must've not wanted to talk about it, as least back then.
https://www.youtube.com/watch?v=sxbiIpXZfG8
whywhywhywhy|3 years ago
zeroimpl|3 years ago
aflam|3 years ago
CSSer|3 years ago
dagmx|3 years ago
I think you could if you had a small bench top cnc or laser cutter.
You’d have to split up the DXF into pieces that fit on your bed, but you’d be able to make a template by joining the parts together.
Then rough cut your workpiece to the template, followed by a flush bit router.
scotty79|3 years ago
As seen on HN this month.
AceJohnny2|3 years ago
She covers the insightful "reflection test" around the 28:05 mark: https://youtu.be/jvPPXbo87ds?t=1685 and actual "curvature combs" at 32:26.
Finally, she covers the continuity of curvature combs that B-Splines exhibit around the 54:00 mark: https://youtu.be/jvPPXbo87ds?t=3240
progbits|3 years ago
milosmns|3 years ago
SSchick|3 years ago
tedd4u|3 years ago
hbrn|3 years ago
But they do: D558,757 and D670,286. Don't people remember Apple v. Samsung case?
https://patents.google.com/patent/USD558757S1/en
https://patents.google.com/patent/USD670286S1/en
robertoandred|3 years ago
dagmx|3 years ago
Apple’s use of continuous curvature in iPhones came around iOS 7 iirc. I might be mistaken but I think they’re subtly but consequentially different subjects.
teekert|3 years ago
ryandrake|3 years ago
CharlesW|3 years ago
noodlesUK|3 years ago
edit: it’s definitely subtly noticeable in the image posted by sibling
bmitc|3 years ago
rowanG077|3 years ago
unknown|3 years ago
[deleted]
dang|3 years ago
Apple’s Icons Have That Shape for a Very Good Reason - https://news.ycombinator.com/item?id=16294455 - Feb 2018 (5 comments)
Apple’s Icons Have That Shape for a Very Good Reason - https://news.ycombinator.com/item?id=13484728 - Jan 2017 (5 comments)
unknown|3 years ago
[deleted]
c-smile|3 years ago
Usually, small radii are emulated by beziers: https://spencermortensen.com/articles/bezier-circle/
ajuc|3 years ago
baybal2|3 years ago
[deleted]