This is a really important concept for developers.
One aspect for developers that I see quite often is the assertion that "We can't have X without giving up more Y", most commonly "we can't have more security without giving up on user experience". With the Pareto idea in mind, we can see that that statement is true, if and only if you are in fact on the Pareto frontier of security and user experience already.
However, many times these confident pronouncements are being made when the system under question is quite evidently not on the Pareto frontier in the first place and indeed you can get more of one without giving up the other.
Making it more tricky is that in business, you can never discard "money" as a dimension, so unless you're taking "money" as one of the dimensions in the original comparison you want to do, it sneaks its way in. Or, a composite time/money, or "cost to business", or some other similar concept, time & money aren't orthogonal and don't need to be treated as two separate dimensions in general, though you can if you want. Which puts you into the 3D case, and as the page says, that grows the frontier quite a lot, which is good in some ways and bad in others. Nevertheless, in my opinion it is still often the case that even in that space we are often making "tradeoffs" without checking that we're on the Pareto frontier in the first place.
Yes, the difference between coding (writing software) and engineering (making informed trade offs about system design) is effectively bound up in analyses like those supported by concepts like pareto efficiency.
One should keep in mind though that not all problems have a neat solution. Many spaces have multiple efficient points that still need to be chosen from, and many pareto optimization problems actually become NP hard computationally when the problem is large enough.
On a tangent, I was a bit confused by the everyday examples given in this article.
"We're often faced with similar trade-offs. You want a meal that's both cheap and delicious? A job that's both well-paid, easy, and fulfilling?"
I really don't feel like "easy" is a dimension I wish to optimize for in a job. It almost feels opposite to what I've actually optimized for - since for me a fulfilling job usually means full of deep technical challenges. I want a job without unnecessary friction, without interpersonal drama, even one that's low stress. But definitely not easy.
I don't. I need to keep winning until I can't to keep the boy in his place. He is getting closer every time. I know my day is soon to end, and a new house champion will reign.
I am the complete opposite of that. My attention wanes when someone fails to get to the point, instead dwelling in irrelevant details which are not intrinsically interesting. Have to muster the motivation to concentrate in such circumstances, and doing so is not enjoyable.
is this also true when the irrelevant details are (by coincidence) interesting (to you)? it sounds to me like GP is interested in mario kart and you simply aren't, so this is a perfectly natural result.
It turns out a lot of things are extremely accessible to a lot more people when you teach them as concrete, relatable scenarios in simple language with useful visualizations instead of abstract X, Y foos and bars described with an unfamiliar jargon term every 3rd word. We really need to do better when it comes to pedagogy.
It's optimizing for different environments and opponents, the speed runs only have to deal with the AI not human players and take such crazy paths the AI isn't around to really mess with them so they don't have to worry about reaccelerating. In versus it's much less likely you'll be able to avoid all the other players so you need to be able to get back up to speed after being hit. A common strategy in the online vs mode is actually back running to collect better items then cashing them in rapidly to win.
On the other hand, if you are a casual and want to dominate 99% races you enter at people's homes, pick Toadette (with Mr. Scooty). I don't think I've lost since 2019.
If you're playing normally (with other people and items), even the most skilled player can't avoid getting hit by some universal items and will benefit from acceleration.
Hence, as the author notes, the balanced build with Peach being favored among competitive players.
Apologies for the self-promotion, but I learned about the Pareto Front from this site a while back - and applied it to Mini PCs with https://minipcs.zip which plots Mini PCs based on Compute vs Price (and other metrics) - highlighting the pareto front to find the optimal unit.
If you liked the playing card interaction at the start (I did), I run a random side project where you (or your coding agent) can build similar 3d cards:
Because Donkey Kong gives more speed for exactly the same acceleration. I.e. you sacrifice nothing and gain something by switching away.
EDIT: If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
> If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
Nice article, I'm sad to learn that I shouldn't be using Koopa. How are Peach and Mario not dominated on acceleration by Tanooki Mario and Luigi respectively?
Also, wonderful visualizations, but the change between blue and white backgrounds is really jarring to me.
It’s called scrollytelling. For this particular project, I borrowed a lot from https://mlu-explain.github.io/. For the 3D elements, I used Threejs and a custom vertex shader for the 3D plot.
> It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game.
Nintendo optimises for fun, not competitive play. Infamously, to curb the competitiveness of Super Smash Bros (SSB) Melee, they introduce a random tripping mechanic in the following SSB (Brawl). Everyone hated it so they removed it in the one after that.
It might still be the best option, depending on your play group. For example, if you’re in a play group with a bunch of novices and you’re destroying them, like finishing a full lap before the second place, choosing Bowser gives you a handicap. Lowers your chances of winning but increases fun for the group as a whole.
This article isn’t quite accurate; acceleration is surprisingly unimportant in Mario Kart and not really considered a major factor when choosing a optimal combo.
The optimal combo is solely decided on the basis of speed and mini-turbo. Otherwise good analysis.
Until recently I thought I hated sites that messed with the scroll out of principle, but then I found a handful of them that do a good job of it. This is one of them.
Can you tell me what’s going on?
I tried my best to make it work on every device, but handling mobile is hard, and especially when you’re messing with interactivity and 3D.
In Firefox reader mode, there's like 5 paragraphs of text. I am unable to digest the content on the website itself. Can someone confirm if the 5 paragraphs is the whole content or if I have large parts of it missing?
Turn off reader there are graphics along with the paragraphs. Reminds me of the complaints that used to be super common from people religiously refusing to enable javascript and complaining when breaking the site breaks the site.
It looks like it. There are four images that pop up and start animating numbers, and those aren't visible in the built in reader. I use Tranquility Reader which ime tends to do a bit better, but it still wasn't readable. Looking at the source, that content seems to be created only on scroll with javascript, so it won't be able to be read accessibly. I had to close it so I can't say what else is missing.
This is a really important concept for developers.
One aspect for developers that I see quite often is the assertion that "We can't have X without giving up more Y", most commonly "we can't have more security without giving up on user experience". With the Pareto idea in mind, we can see that that statement is true, if and only if you are in fact on the Pareto frontier of security and user experience already.
However, many times these confident pronouncements are being made when the system under question is quite evidently not on the Pareto frontier in the first place and indeed you can get more of one without giving up the other.
Making it more tricky is that in business, you can never discard "money" as a dimension, so unless you're taking "money" as one of the dimensions in the original comparison you want to do, it sneaks its way in. Or, a composite time/money, or "cost to business", or some other similar concept, time & money aren't orthogonal and don't need to be treated as two separate dimensions in general, though you can if you want. Which puts you into the 3D case, and as the page says, that grows the frontier quite a lot, which is good in some ways and bad in others. Nevertheless, in my opinion it is still often the case that even in that space we are often making "tradeoffs" without checking that we're on the Pareto frontier in the first place.
Yes, the difference between coding (writing software) and engineering (making informed trade offs about system design) is effectively bound up in analyses like those supported by concepts like pareto efficiency.
One should keep in mind though that not all problems have a neat solution. Many spaces have multiple efficient points that still need to be chosen from, and many pareto optimization problems actually become NP hard computationally when the problem is large enough.
On a tangent, I was a bit confused by the everyday examples given in this article.
"We're often faced with similar trade-offs. You want a meal that's both cheap and delicious? A job that's both well-paid, easy, and fulfilling?"
I really don't feel like "easy" is a dimension I wish to optimize for in a job. It almost feels opposite to what I've actually optimized for - since for me a fulfilling job usually means full of deep technical challenges. I want a job without unnecessary friction, without interpersonal drama, even one that's low stress. But definitely not easy.
Of course I, and most of the dads I know, optimise for something else: what’s the car that will keep me competitive, but probably losing, to the kids?
I don't. I need to keep winning until I can't to keep the boy in his place. He is getting closer every time. I know my day is soon to end, and a new house champion will reign.
I did not understand https://news.ycombinator.com/item?id=49096439, but I understood this.
I am the complete opposite of that. My attention wanes when someone fails to get to the point, instead dwelling in irrelevant details which are not intrinsically interesting. Have to muster the motivation to concentrate in such circumstances, and doing so is not enjoyable.
is this also true when the irrelevant details are (by coincidence) interesting (to you)? it sounds to me like GP is interested in mario kart and you simply aren't, so this is a perfectly natural result.
I’m not interested on Mario kart at all and still found the article to be interesting.
I can only imagine the guy that made Mario Meets Pareto waiting for some Pareto related post to hit the front page before sharing his
I remember seeing this on HN frontpage already in the past, and indeed here it is: https://news.ycombinator.com/item?id=39936246
wiki is usually not great at teaching new concepts, better as a reference for someone who already learned something.
It turns out a lot of things are extremely accessible to a lot more people when you teach them as concrete, relatable scenarios in simple language with useful visualizations instead of abstract X, Y foos and bars described with an unfamiliar jargon term every 3rd word. We really need to do better when it comes to pedagogy.
> You probably won't pick a driver sitting on the edge of the frontier because you want some balance between speed and acceleration
for super mario kart speedruns go with bowser/dk: https://www.speedrun.com/smk/runs/zp68nr8m
That seemed to hold up for Mario Kart 8 too going with Bowser at the edge of their pareto frontier, https://www.speedrun.com/mk8
needing acceleration is a skill issue
It's optimizing for different environments and opponents, the speed runs only have to deal with the AI not human players and take such crazy paths the AI isn't around to really mess with them so they don't have to worry about reaccelerating. In versus it's much less likely you'll be able to avoid all the other players so you need to be able to get back up to speed after being hit. A common strategy in the online vs mode is actually back running to collect better items then cashing them in rapidly to win.
Acceleration is pointless because of the hidden Mini Turbo stat
On the other hand, if you are a casual and want to dominate 99% races you enter at people's homes, pick Toadette (with Mr. Scooty). I don't think I've lost since 2019.
Speedruns are for playing the track solo, right?
If you're playing normally (with other people and items), even the most skilled player can't avoid getting hit by some universal items and will benefit from acceleration.
Hence, as the author notes, the balanced build with Peach being favored among competitive players.
GP first link is to a speedrun in the all cups category, played with items and computer opponents. There's a video included.
People do speedrun the individual tracks solo in other categories.
[delayed]
It's a fair point that such an environment will be different than playing against other humans
Lol skill issue... Right! But that's how you choose your weights. If you're not a great driver you need to give more consideration to acceleration.
Adding skill is just another dimension to the calculation.
I would really love to be able to explore this data, e.g. what is the "worst" driver? Is there an inverse Pareto front?
Previous discussion (2024): https://news.ycombinator.com/item?id=39936246
Apologies for the self-promotion, but I learned about the Pareto Front from this site a while back - and applied it to Mini PCs with https://minipcs.zip which plots Mini PCs based on Compute vs Price (and other metrics) - highlighting the pareto front to find the optimal unit.
A lot of these optimization problems can benefit from using a genetic algorithm: https://github.com/lodenrogue/genetic-algorithm-js
If you liked the playing card interaction at the start (I did), I run a random side project where you (or your coding agent) can build similar 3d cards:
https://requirement5.com
build a card here: https://requirement5.com/create (and the CLI instructions are there too)
https://github.com/vilt9/requirement5
I noticed DaisyUI also has a component for this just a couple of days back - https://daisyui.com/components/hover-3d/
This is the OG: https://poke-holo.simey.me/ - inspired me as an old pokemon collector
Finally an important and realistic application of economic theory to real life!
Can anyone explain why Rosalina is not Pareto optimal here? It kind of looks like she should be.
Because Donkey Kong gives more speed for exactly the same acceleration. I.e. you sacrifice nothing and gain something by switching away.
EDIT: If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
> If you mean that Rosalina looks slightly higher on the graph, I believe that's just a visual effect to allow multiple characters to occupy the same square - the stats are all integers.
Ah, yeah. That is what I meant. Thanks!
Nice article, I'm sad to learn that I shouldn't be using Koopa. How are Peach and Mario not dominated on acceleration by Tanooki Mario and Luigi respectively?
Also, wonderful visualizations, but the change between blue and white backgrounds is really jarring to me.
I always pick koopa, I always win
Koopa came out in offroad vs weight..without being that familiar with the game, I don't know whether that would ever be important enough to care about
Excellent. This is some kind of 3D PowerPoint. How did he do that?
Author here. The source code is available at https://github.com/SuperMayo/mayerowitz.io.
It’s called scrollytelling. For this particular project, I borrowed a lot from https://mlu-explain.github.io/. For the 3D elements, I used Threejs and a custom vertex shader for the 3D plot.
I guess the author used a different framework but I like this one: https://animejs.com/
Looks like html+css+js+webgl
Solid advice, saving it
To think I gimped myself so much by using baby Rosalina on a scooter with rollers
This was fun, thank you
Thanks! Very useful information. I will never play for Bowser again.
Once at a Mario Kart 8 tournament I was helping run there was a kid who had picked Bowser and max speed and he was struggling to make every turn.
I switched him to the meta build and suddenly boom, he went from like 10th to 2nd against the AIs.
It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game.
> It's kinda weird that you can shoot yourself in the foot so much when picking your kart in this game.
Nintendo optimises for fun, not competitive play. Infamously, to curb the competitiveness of Super Smash Bros (SSB) Melee, they introduce a random tripping mechanic in the following SSB (Brawl). Everyone hated it so they removed it in the one after that.
It might still be the best option, depending on your play group. For example, if you’re in a play group with a bunch of novices and you’re destroying them, like finishing a full lap before the second place, choosing Bowser gives you a handicap. Lowers your chances of winning but increases fun for the group as a whole.
This resonates hard
This article isn’t quite accurate; acceleration is surprisingly unimportant in Mario Kart and not really considered a major factor when choosing a optimal combo. The optimal combo is solely decided on the basis of speed and mini-turbo. Otherwise good analysis.
Mario was an elite?
Lakitu ftw
wow that took alot of work. nice job
beautiful site
The site is really broken on mobile.
I cannot be the only one who atrongly dislikes this bloated web design. I hit back after scrolling a bit
Until recently I thought I hated sites that messed with the scroll out of principle, but then I found a handful of them that do a good job of it. This is one of them.
The key here is to have a foreground layer that always responds to scroll and informs the background layer based on its position
No, you're not. A lot of the web is becoming increasingly unusable for me because of things like this.
Also on Firefox android and working great. What's your browser/os?
Can you tell me what’s going on? I tried my best to make it work on every device, but handling mobile is hard, and especially when you’re messing with interactivity and 3D.
Works for me with Firefox on android and ublock origin.
Works wonderfully on iPhone
Works for me in Firefox on Android anyway
In Firefox reader mode, there's like 5 paragraphs of text. I am unable to digest the content on the website itself. Can someone confirm if the 5 paragraphs is the whole content or if I have large parts of it missing?
Turn off reader there are graphics along with the paragraphs. Reminds me of the complaints that used to be super common from people religiously refusing to enable javascript and complaining when breaking the site breaks the site.
Why do you think people refused to enable javascript?
It looks like it. There are four images that pop up and start animating numbers, and those aren't visible in the built in reader. I use Tranquility Reader which ime tends to do a bit better, but it still wasn't readable. Looking at the source, that content seems to be created only on scroll with javascript, so it won't be able to be read accessibly. I had to close it so I can't say what else is missing.
The article includes interactive graphs and scrolling animations that explain them, as well as data.