Hey y'all, I now have a Patreon where I share the source code for every project, as well as bonus video content! Check it out if you want here: www.patreon.com/UselessGameDev
Lol, the difference between wisdom and intelligence. One will require creating a genetic algorithm, the other requires a screwdriver and some extra trips up and down the stairs :D
@@uselessgamedev So true. You remind me of Code Bullet, but are unique - you have charisma, your visuals have their own style and are not overly complicated, and most importantly, you communicate concepts effectively and clearly without being boring and one-dimensional. Great work!
you can fit almost any sofa, which length is less than ceiling height. Just let the longest side of your sofa to be vertical to the floor, while moving your new piece of furniture around. This is how sofas / tables are usually squeezed through very narrow turns / corridors / niches. Larger sofas can be usually disassembled to smaller pieces. This comment is for those readers who took the video too seriously.
In my actual apartment the couch didn't fit through the door and ended up coming in through the window. There's a whole other level of simulation that awaits!
Yes it was the reason I made this, to see if a genetic approach would come up with the same result. I intended to do a comparative analysis of my results and the ones on wikipedia but it didn't make it into the final cut
@@uselessgamedev I'd love to see the 3d version, though the extra dimensions means path might need to evolve with the sofa, and you would need to force the sofas to have a sitting section, maybe a boolean where a sitting area is subtracted from the 3d shape?
@@charlesbarrow803Or it could evolve a shape that marks the maximum bounds of of the sofa, and later manually design something that fits inside that shape.
@@uselessgamedev That's fair... I did not think things through too much haha. I was thinking maybe just something designed as a room with other interior, and seeing it maneuver around that.
Wow, I think if we extend the same question into three-dimensional space, the largest single body that can pass through an actual continuous reverse 90-degree angle pipe is, well, a monomer similar to a peanut or gourd.
Interesting, for a pipe the gourd hypothesis is probably the right guess, but for a truly 3D setup I guess it's not even a pipe it's more like a... the corner of a small cube hovering inside a larger cube. And since there's one more way of turning the object it probably yields very different objects. Ugh this is too much 3D visualization for my small brain cells :O
I feel like it would've been interesting to boost the final score based on things like symmetry and number of straight lines - although I guess maximizing area does the same trick?
Interesting suggestion. I was going for a more "free reigns" approach letting the algorithm do its thing and see what it comes up with (which is pretty close to the current conjecture on wikipedia) but I guess I could add more constraints to it. I doubt it would change the final result much but it would certainly improve the time it takes to converge to the solution
Yeah I love these algorithms that are modeled on something (genetics, quantum physics) but are applied to a completely different field, it gives funny sentences
Hey, I really liked the video and wrote something similar in python. How did you do the movement of the sofa? I can't pay for the source code on your patreon so I'm asking just for a general idea on how to do it.
It relies on the physics engine of Unity, I just apply a downward and rightward force, as well as a clockwise torque, and Unity does all the work. If you don't have access to a physics engine in Python you might need to make a basic one
Game physics engine are by design flawed, and tons of good shapes get stuck when they reach a tight fit, which ended up lowering the score of the best shape. I guess that's the limitations of this approach. A method that would yield better results would be to check every vertex of the mesh against each walls using a raycast. More compute intensive, less fun to watch in a video. Someone on Twitter names @PassionProgr had another different approach that you might want to check out
@@uselessgamedev Ok, maybe later I will try to write an AI with tensorflow to steer the bots. But till then I am also just applying simple rightward force.
Thanks! The goal was to make the second one as ugly as it is impractical. The 3D artist was thrilled. To contact me you can write at theuselessgamedev and then @ and then gmail.com (don't forget the "the")
I know you said couch 9000 times but at 3:03 the only thing my braincell thinks of is US State Shaped Cuttingboards! This shape parameterisation is something I'll rember when generating made up geogpraphy
It's unsolved if you aren't allowed to disassemble the couch. Ofc the solution if you are allowed to disassemble the couch is that you can transport ♾️ area
Hey y'all, I now have a Patreon where I share the source code for every project, as well as bonus video content!
Check it out if you want here: www.patreon.com/UselessGameDev
love that the ai got to the same solution mathematicians did just by bashing its head against a wall 2000 times
the mathematicians also got it empirically so they probably used a similar algorithm
watching people overengineering a problem for the hell of it never gets old :)
Buy those couches that come in parts. Bring the parts into the room. Put them together
Where's the fun in that haha.
Last time I actually moved, the couch actually went in through the window
Lol, the difference between wisdom and intelligence. One will require creating a genetic algorithm, the other requires a screwdriver and some extra trips up and down the stairs :D
As someone who already knew the solution to this problem, it was interesting watching the AI actually approach the correct shape.
everything from the quality of little animations and bits to the actual concept and execution of your videos, man your about to blow up
Thank you!
@@uselessgamedev So true. You remind me of Code Bullet, but are unique - you have charisma, your visuals have their own style and are not overly complicated, and most importantly, you communicate concepts effectively and clearly without being boring and one-dimensional. Great work!
Just take first variant and rotate it halfway around the horizontal axis. The strong friend is necessary.
As the walls are very close to the couch I don't think you can actually rotate it around the horizontal axis because of its height
I used to deliver furniture that 3rd dimension really helps
It generated the perfect shape for a stool
Breed a new generation of couches 😂 I love it haha what a fun idea! Awesome video.
Nice video, I recently saw the numberphile video on this. Cool to see a generic algorithm come to the same conclusion
Found my new favorite channel! This is the kind of stuff I find super interesting
I'm glad you like it, it's maybe my favorite video of the channel
okay but consider this: when in the corridor after the first turn, do a barrel roll (any damage to your back is a worthy sacrifice for science)
What if the ceiling is so low the couch barely slides under it
@@uselessgamedev this would imply either your couch is taller than you or you must crawl into your appartment
This video is what youtube is all about for me, great video!!.
Hope to more
Thank you! This is indeed the kind of goofy-ish topics I hope to make more of
you can fit almost any sofa, which length is less than ceiling height. Just let the longest side of your sofa to be vertical to the floor, while moving your new piece of furniture around. This is how sofas / tables are usually squeezed through very narrow turns / corridors / niches. Larger sofas can be usually disassembled to smaller pieces.
This comment is for those readers who took the video too seriously.
In my actual apartment the couch didn't fit through the door and ended up coming in through the window.
There's a whole other level of simulation that awaits!
Just wanted to say that I'm loving your channel. Niche computer science problems brought to you in a concisely and knowledgeable way are my jam.
Thank you for your comment I'm glad you like the videos. More jam coming soon :)
Leonard, absolutely brilliant. Very entertaining. An algorythms, coding, biology and social science all in one lesson. 😲uau I just love it.
Thank you so much, I'm glad you enjoyed 😊
I'm bingewatching your channel, so much fun
A rectangular couch would work regarsless if you put it on its side. Just make sure its cross section is not larger than 1m2
Lmao but the final version is much better. I definitely don't see any resemblance to any other object
nice. excellent couch. thanks for posting. always a good experience watching your content.
Interestingly, generated couch shapes were pretty close to the proposed human solutiuons.
Yes it was the reason I made this, to see if a genetic approach would come up with the same result. I intended to do a comparative analysis of my results and the ones on wikipedia but it didn't make it into the final cut
You could actually just have flipped the coutch upside down for the second L
Yes. All of this is assuming a 2D-only space, or a very very low ceiling :)
@@uselessgamedev I'd love to see the 3d version, though the extra dimensions means path might need to evolve with the sofa, and you would need to force the sofas to have a sitting section, maybe a boolean where a sitting area is subtracted from the 3d shape?
@@charlesbarrow803Or it could evolve a shape that marks the maximum bounds of of the sofa, and later manually design something that fits inside that shape.
You stand your couch on its end when moving it around sharp corners.
Very cool concept! Would've been nice to see what would happen in a variety of different terrain constraints though
Do you have some in mind? I thought about trying a curved path, and other stuff but I figured the shape would simply end up being a circle
@@uselessgamedev That's fair... I did not think things through too much haha. I was thinking maybe just something designed as a room with other interior, and seeing it maneuver around that.
@@legotechnic27 hmm interesting. Like with obstacles and stuff. Thanks I'll think about it. Might revisit this topic on day
Now the question is... Will it fit through the door? XD
Great video! That was really interesting to watch!
Now you just have to simulate this problem in 3D, since that would allow a larger couch.
I love this soft computing problem 😌this is a very useful, smart channel
This was very cool, you are a champion.
I of course have my couch vertical on its side and so it can fit through most places. Even though is huge.
Hi Leonard, I hope you have got your sofa inside and the algorithm blesses you with good engagement.
Turn the couch sideways.
Wait, how come I didn't think of that 😱
Super interesting video and good explanations!
What a great video, love the idea!
I mean they basically got to the same place we did so that's good.
Wow, I think if we extend the same question into three-dimensional space, the largest single body that can pass through an actual continuous reverse 90-degree angle pipe is, well, a monomer similar to a peanut or gourd.
Interesting, for a pipe the gourd hypothesis is probably the right guess, but for a truly 3D setup I guess it's not even a pipe it's more like a... the corner of a small cube hovering inside a larger cube. And since there's one more way of turning the object it probably yields very different objects.
Ugh this is too much 3D visualization for my small brain cells :O
yeh, really interesting and I feel it be more difficult after seeing your reply haha.@@uselessgamedev
6:47 it also makes more sense as a couch
I feel like it would've been interesting to boost the final score based on things like symmetry and number of straight lines - although I guess maximizing area does the same trick?
Interesting suggestion. I was going for a more "free reigns" approach letting the algorithm do its thing and see what it comes up with (which is pretty close to the current conjecture on wikipedia) but I guess I could add more constraints to it. I doubt it would change the final result much but it would certainly improve the time it takes to converge to the solution
A lot of couches will fit about any corner if you move them standing up
You just need strong friends
Yeah I'd rather run a simulation overnight
Great video!
Now do it in 3D! Should be easy to adapt, right? Right?
stand it up, that way the couch can be as long as the corridor is tall
Th... That's cheating
slight problem my apartment has stairs which are smaller than the doorway
I feel you, in my actual apartment the couch ended up getting in through the window haha
Hold on, the second turn could be fixed by just flipping the couch over and carrying it through
this is genious
Pivot, pivot!
👆 Me at 3am when watching the first generations of couches
never thought i'd hear the phrase "breed the next generation of couches"
Yeah I love these algorithms that are modeled on something (genetics, quantum physics) but are applied to a completely different field, it gives funny sentences
I love it
Hey, I really liked the video and wrote something similar in python. How did you do the movement of the sofa? I can't pay for the source code on your patreon so I'm asking just for a general idea on how to do it.
It relies on the physics engine of Unity, I just apply a downward and rightward force, as well as a clockwise torque, and Unity does all the work. If you don't have access to a physics engine in Python you might need to make a basic one
@@uselessgamedev Thanks for the quick response. Isn't it possible for good shapes to get stuck when going back would be necessary?
Game physics engine are by design flawed, and tons of good shapes get stuck when they reach a tight fit, which ended up lowering the score of the best shape. I guess that's the limitations of this approach. A method that would yield better results would be to check every vertex of the mesh against each walls using a raycast. More compute intensive, less fun to watch in a video.
Someone on Twitter names @PassionProgr had another different approach that you might want to check out
@@uselessgamedev Ok, maybe later I will try to write an AI with tensorflow to steer the bots. But till then I am also just applying simple rightward force.
Turn the sofa on its side, boom, problem solved
or flip the couch upside down in the middle hallway
Palms sweaty, knees weak, couches are heavy
I predicted that shape though
Have you tried dropping it into your apartment?
Clever! :)
Couldn't you flip the first couch over to get around the second turn?
my arms are too weak to flip anything
0:40 PIVOT
if its shorter than the corridors heigt it should tir throu no matter the shape
Yo! Nice idea for a video. I think it looks like a brush lol. btw do you have a way to contact you directly?
Thanks! The goal was to make the second one as ugly as it is impractical. The 3D artist was thrilled.
To contact me you can write at theuselessgamedev and then @ and then gmail.com (don't forget the "the")
@@uselessgamedev lol I'm sure they were.
I have 2 comments. What about the Z axis? And secondly, PIVOT!
I don't have a Z axis I live in flatland
I know you said couch 9000 times but at 3:03 the only thing my braincell thinks of is US State Shaped Cuttingboards! This shape parameterisation is something I'll rember when generating made up geogpraphy
I think the solution is to get it from ikea
Ikea, mate.
bruh its a 3d space, just rotate the couch.
i really love these kind of vids, also 100th comment lol
The 1000th comment wins a mathematically optimized couch
Unsolved? Disassemble the ffffing couch! And put it back together at place. It's not a rocket science.
It's unsolved if you aren't allowed to disassemble the couch. Ofc the solution if you are allowed to disassemble the couch is that you can transport ♾️ area
7:10 "the best couch of each generation sofa(r)"
0:38 "Pivot! Pivot!"