The video perfectly captures the humbling gap between elegant LQR control theory and the brutal reality of hardware failure. It’s a masterclass in why even the most optimized math can’t save you from a last-minute mechanical breakdown.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
My Robot broke 1 Day before Graduation (bruh)
Added:This is my bipet robot which broke the day before my graduation.
Now, this kind of sucked since I had been working on this robot for last 6 months and I was supposed to present him the next day to get my engineering degree. But hey, at least graduation wasn't going to be my biggest concern anymore. This disaster actually started 2 months ago when I had just finished making the last video and I was preparing for the final phase of my master degree in electronics.
[music] I've been thinking about the next two months and it's going to be [ __ ] brutal. I need to build a new robot. I mean, [music] this one's all right, but he's literally falling apart. Then I need to write an entire thesis about him. And [music] just as the thesis deadline approaches, I'm getting slept with two exams. If I manage to do all of this, then I just need to do my thesis [music] defense and I will be getting my engineering degree. So, there's a plan for the next two months. And now I'm [music] going to excuse myself because I have robot to build.
Just like all humans, this robot begins his life as a Fusion 360 assembler. You might say he looks similar to the prototype I built in my last video, but he's completely different. I mean, first of all, he's much taller. He's about 7 m or just over 2 ft tall. He's quicker because I increased the wheel diameter, and he just looks [ __ ] sick. But the most interesting features are actually hidden on the inside. I fixed every single mechanical issue I had with the prototype, and I added new features on top of that, which helped me prototype this version of the robot faster. The robot uses six quasi direct drive actuators. Two actuators move each leg while the fourth one rotates the wheel.
[music] These actuators have a low reduction ratio which means they can be back driven. This is ideal for a dynamic robot since the actuators can absorb impact when the robot jumps or smashes into the ground. Unfortunately, I listened to JPT and bought the wrong type of the motors for the prototype.
So, I wasn't able to reuse them and had to buy new ones for $600. The links of the robot are made out of octagonal carbon fiber tubes. I decided to go for carbon fiber over 3D printing because it provides superior mechanical properties like high rigidity, low weight, and it also sounds pretty cool. I bought two 500 mm long cubes from AliExpress for $40 and some cutting equipment. To prevent the carbon fiber dust from going into my lungs, I wore a 3M respirator with a particle filter. I also made sure to use a lot of water when cutting to prevent the dust from floating around in the first place. To make the cut surfaces not look like [ __ ] I used a steel cutting grid and a hexaw with fine teeth for cutting metal. The cutting went pretty well and I was even surprised by the surface finish. After cutting the cubes in half, I was left with four 250 mm long carbon fiber tubes and some black goo that looks like one of them. The end of each cube is inserted either into a rotor or a stator clamp. Because of the tight tolerances, I had to use a heat gun to stretch out the clamps before instanting the cube.
The clamps match the octagonal shape of the cube, which provides the links from rotating. To prevent the cubes from sliding out of the glamps, I drilled a hole through each end of the cube and used bolts to secure it to the clamp.
This design made the link stiff, strong, and super lightweight. I could definitely stand on this, but it's so [ __ ] light. Since I designed each link to be the same, I was able to use the rotor and stator clamp on every camera fiber cube, reducing the complexity. The stator clamp is attached to the stator of the actuator with four bolts. Attaching the rotor clamp is a bit more complicated. Since the rotor of the actuator has its mounting holes close to the center, I couldn't bolt the rotor clamp directly. Instead, I made an adapter which has its mounting holes further from the center. The adapter is bolted to the rotor with a counter sunk bolts [music] and provides a flat surface for the rotor clamp. Connecting two actuators with two links [music] makes up the robot leg. One part I didn't change at all is the actuator armor. The original design was already decent and I didn't want to spend a day printing parts from TPU. So after shedding a couple of tears, I put on the movie The Social Network and start [music] disassembling the robot. I'm taking the last look at this robot. I spent hundreds of hours building it and now I'm going to tear him down to make a better one.
>> So when I made the prototype, I noticed that TPU is a terrible choice for tires because even though it's squishy, it provides zero traction. Therefore, the tires of this robot are made out of condensation silicone with a short hardness of 4A. Going this way was kind of risky because every time I used silicone in the past, I got comments like this and the video got demonetized.
I also tried using polyurethane, but it came in this red vomit like color. So, silicone was the way to go. I noticed that the bottles had some unpleasant symbols on them. So, I put on my safety glasses and a respirator with chemical cartridges. This was the responsible thing to do, but since I was doing this on my balcony, I scared a few innocent civilians, and my neighbors now probably think I'm a chemist.
>> This must be pretty weird for you people outside. [music] I measured exactly 350 gram of silicon which I calculated based on the volume of the K model to the silicone density and I added about 40 g to account for spillage. Then I added a bit of black pigment about 4 ml of catalyst and started mixing. And I just want to say the pigment is so [ __ ] cool. I added like a small blob and I thought there's no way it's going to cover the entire mixture. But as I started mixing it very quickly spread throughout the entire silicone without really losing any color. After I poured the silicone into each half of the mold, I let it sit for about 30 minutes before sandwiching the two parts together and tightening them with bolts. Then I let it cure for about a day. The wheel of the robot has a bunch of bumps around the circumference to lock the tire and make sure it doesn't slip. These tires have slots [music] inside them, and these should fit the wheel exactly. That way, it's going to hold much better. This was a great idea in principle, [music] but it made the mold really hard to take apart and the wheel looks super geofy. So, I put the tire over the wheel and after evaluating the direction characteristics, I made a second one and started assembling the robot. At this point of the build, it was 6 weeks before the deadline and I had a plan. I would spend the next two weeks building the mechanics and electronics of the robot because then I would be having my exams which would take about a week.
After that, I would be left with 3 weeks to finish programming this robot as well as writing my entire thesis, which I would leave for the last 10 days and submit it at the deadline. Probably not the safest strategy, but I leave everything [music] related to school for last minute anyway. So, instead of lying to myself, I just plan to do everything at the last possible moment. At this point, I also had a meeting with my supervisor to talk about my thesis.
[music] And right when I entered his office, he was like, "Hey, I saw you on YouTube. That was very cool. So yeah, that was pretty cool. I was assembling this robot for about 50 minutes and I haven't noticed that I [music] put this link onto the other side. So now the robot is just super white. [music] Yeah, I [ __ ] this up. Right, the robot is done. It looks pretty cool, especially the wheels. It's basically the same as the old one, just much bigger and every part is [music] a bit better. There were some problems when I was printing the body and I got this giant layer shift. So, you can see [music] this whole layer is shifted to the left, which kind of sucks. But I'm not going to reprint the body because it takes about a day [music] to reprint.
What I'm going to do instead is watch doctor house and connect each of the motors to the PCB. PCB is the heart of the robot, connecting all the electrical components together. things like a microcontroller which runs the code or an IMU sensor which measures the robot stealth. Each of these components needs to be powered with the correct wtage and properly connected to the other components. This is the role of the PCB.
It has all the necessary connections in a single printed circuit board which I designed in my last video. To create the PCB, I used Keycat for the design and had it manufactured by my sponsor PCB way. I just uploaded the gerbble files from Keycat, selected the size and quantity, and got an instant quote of $5. After a few days of manufacturing and some shipping time, I received my PCBs and was ready to wire up the robot.
If you are interested in getting some PCBs as well, you can check out PCB Way.
They also provide manufacturing services. So, if you need to CNC [music] machine or injection mold some highquality parts, use the code PCB way- taser 10 to get a $10 discount on your next order. I actually created two diagrams to explain how the PCB works in my thesis, so I might as well use it in my [ __ ] YouTube video. The robot is controlled by a T8S remote controller.
The 8 channel controller takes in the data from the joysticks and buttons and sends it wirelessly to a T8s receiver which is on the PCB. The receiver data is then sent to a tinsi 4.1 microcontroller. The MCU runs the code and communicates with the actuators and the perforce for balancing the robot. A GY BNO055 IMU is used to measure the robot's tilt angle. The IMU data is sent to the MCU as well. The robot uses 6GM8108 actuators. These actuators communicate with the PCB. They receive control commands like the torque or position targets and feedback their position and velocity. These actuators use again simple protocol for communication and can talk to the MCU directly. So I'm not reading that name.
Kenbus transceiver is used as a middleman for the power. The robot uses two 6S lithium polymer batteries with a capacity of 2.8 amp hours each. These two batteries are connected in series and provide the PCB with roughly 48 volts. The voltage then goes through a switch which when turned on powers the six actuators with 48 volts to power the peripherals. The lower battery is used to provide the PCB with 24 volts which gets further stepped down to 5 volts with a back converter. The 5 volts then power the microcontroller which has an onboard 3.3 volt regulator powering the power force. Now, it's probably worth mentioning that the actuators I'm using have a [ __ ] ton of power and powering them directly from the PCB is probably not the best idea. I decided to go this way because it was the easiest and most compact option, but each actuator has a nominal current of 7 amps and a stall current of 22 amps. [music] This means that if all actuators operated at their max power, the PCB would have to withstand 120 amps of current and would probably just blow up. I got [music] around this issue by using the entire top half of the PCB for transferring the current from the batteries to the actuators. And this helps in two ways.
[music] Since the area is so high, it's going to have a low electrical resistance and it's going to dissipate the heat better. I also did some calculations in Keycat. So I told it, hey, I don't want my BCB to be over [music] 80°C. And I think the robot is going to roll about 50 amps. How wide do the traces have to be? And it checked out with my design. So hopefully my robot is not going to blow up. Okay, so I'm finishing up the PCB. It's basically done. All I need to do right now is to solder up this buck converter. I want to make sure I don't [ __ ] it up like I did in my [music] previous PCB. So I added a 100 microfarad capacitor and two decoupling [music] capacitors to make sure this signal is high quality. But what I failed to do is to place the buck converter [music] correctly. So right now it's [ __ ] merged. Since I had labeled the voltage pins incorrectly, [music] I couldn't solder the buck converter directly onto the PCB and I had to use two cables to flip the input and output wtage. Looking back at this footage, I first thought I was hallucinating, but then I remembered that the third hand is actually from my girlfriend who held the buck converter as I soldered it onto the PCB. So I guess you could say she helped me build the robot.
All right, I just finished wiring up this switch and then these cables and I'm going to connect these two batteries. Make sure that firstly this PCB doesn't blow up. That's kind of the priority. And secondly, I'm going to make sure that this buck converter works [music] because I used to have some problems with that.
[music] >> Very nice.
Okay, everything looks good. Now I [music] can attach this PCB to the robot and connect the actuators. Each actuator is connected to the robot's [music] PCB using four wires. Two are used for communication and two are used for power. The robot sends and receives data from its actuators [music] using canvas communication. The main canvas line starts at one leg of the robot, goes through the robot's body where it connects to the transceiver and ends at the other leg. Each actuator is then connected to the main canvas line using ST. [music] In order for the canvas communication to work, the main canvas line needs to be terminated at each end using 120 ohm resistors. But as I painfully found out after 14 hours of debugging in my last video, the actuators already have the resistors inside them, and you just need to turn them on and off. For delivering the power, each actuator uses an ATWG [music] wire, which goes from the actuator and connects to the PCB with an XT40 connector. Since this is a [ __ ] ton of wires, I used a cable sleeve to improve the cable management as well as provide some additional protection. And since the wiring is the exact same as for the prototype, I decided to sacrifice the old robot and used its cables for the new one. After connecting each actuator to the PCB and using some duct tape to elegantly attach the wiring to robot links, I was ready to test out the new robot. Inverse kinematics test one.
[music] [sighs] This is so cool.
I noticed that the robot was vibrating quite a bit, but I decided to cut him some slack because it was his first time and he was just a bit nervous. At this time of the build, I had also received a new 3D printer. Okay, that's a lie. I actually received three new free printers and have so many machines right now that I decided to dedicate an entire room to them. But the printer I want to talk about right now is the form 4 which was sent to me for free by force. The form 4 is an SLI printer and it's so [ __ ] cool. Instead of melting solid filament like typical FDM printers, it cures liquid resin using UV light. After printing, the parts still have some resin on them. So you have [music] to wash them in isopropyl alcohol and cure them with more UV light. This way you get highly detailed parts that wouldn't be possible with normal 3D printing.
Since the printer uses resin, you also have access to completely different materials and Formlabs has some really exotic ones. You can make elastic parts, transparent parts, or even [music] 3D print silicone. For my robot, I decided to use their black and clear resin. The body of the robot is the most complicated part. It has a battery drawer which holds two batteries and can be removed by pressing together two tabs. [music] The body cover has a handle on top of it and can be removed by lifting up a tab as well. The inside of the robot consists of two [music] levels. The top level holds the PCB and the bottom layer is used for battery storage. The PCB is stored inside an electronics box [music] which consists of two parts. I designed the top part to be SLA printed from clear silicone [music] and it can be removed by pressing two buttons to increase the air flow and make sure the PCB doesn't overheat. The bottom part has a bunch of hexagonal holes. These are also used for running the cables from the batteries to the PCB. [music] To make sure no cables are sticking out, the electronics box has these holes for wire management. This was my first time using an SLA printer [music] and it was surprisingly easy. I loaded the STL file into preform, clicked a button to auto orient the part and autogenerate supports. [music] And I click print. To load the resin cartridge into the printer, I just placed [music] it at the back and since the cartridges have bite walls on them, it automatically dispenses the resin. I filled the wash station with isopropyl alcohol and after [music] a few hours of printing, the parts were finished. I removed the ledge, took out the entire build plate with the printed parts and loaded them into the washing station.
And the washing station looks so [ __ ] cool. You just press one button, it automatically rises up. You placed the entire build plate with the parts inside it and [music] lower it again. After a few minutes of washing, the station automatically opens up and raises the build [music] plate. I took out the flex build plate, pressed the sides to release the parts, and placed them in the cure station. [music] Then I let them cure for one minute. I removed the supports, and I was expecting the resin to be brittle, but it was surprisingly durable. To free the print cover, I needed to switch resins. So, I took out the entire resin tank, [music] placed in a new one, added a resin mixer, and added to the clear resin. The printer automatically dispense the clear resin into the new resin tank. And [music] since each resin gets its own resin tank, switching the resins is super easy and takes almost no time. After a few hours of printing, I had this beautiful transparent part. [music] So I put it in the wash station for 5 minutes and let it cure for 1 minute. I removed the supports and check out the finished part. I had used the [music] default resolution of 20 letters per millm. So the part wasn't completely see-through and you can still see the letter [music] lines a bit. So I decided to print this part again and use a trick I saw on YouTube. Instead of washing the part in isopropyl alcohol after printing, I put it straight in the cure [music] station and let it cure for 10 minutes. This way, the residual resin would fill in the letter lines and I should get a completely transparent part. In the end, I actually prefer the matte finish because the cables inside my robot look like [ __ ] anyways. And this box is just so beautiful. I didn't even consider any tolerances. I just printed it as it was modeled and the fit is perfect. After checking out the print, I rerouted the cables to run through the electronics box, and I was pretty happy with the final result. All right, the wiring is done. It looks super messy, but this is why I designed this box. I can just put this nice top cover over it.
I can close this up and I don't have to worry about wires sticking out of this and blocking this top cover. I have spent hundreds of hours developing this robot and the hardware is finally done.
[music] It is pretty solid. It's reliable. And this means the floodgates are open. So, I'm going to do things like making him balance, drive around, do push-ups, jumping, all that stuff I can now program in relatively little time compared to the time I spent developing this robot. And the first thing I'm going to do is making the robot balance. To balance the robot, in my last video, I used a Cascade P controller. This time, however, I was going to use LQR. I thought it would have a better performance. I wanted to try something new and I also didn't know it would be this [ __ ] hard. So for my last robot, I measured its angle and speed and the P regulator used this information to calculate the necessary real velocity to keep the robot upright and track the desired velocity. But LQR needs a full state feedback, which means I'm going to need to measure more stuff.
The output of the robot is the state vector. These are the four states I'm measuring. the position, velocity, angular position, and angular velocity of the robot. For simplicity, I'm calling the state vector x. The input to the robot is the wheel torque which is used to balance it. I don't want the robot to just balance in one place. I want to actually control its position.
So, the reference position is going to be set by a joystick. And this is the role of the controller. It's going to take in the state vector, the reference position, and it's going to calculate the wheel torque, which is necessary to achieve balance and track the reference.
The controller does this by taking the state vector, multiplying it by a gain matrix K, and subtracting this from the reference position to get the target wheel torque. With this controller, if you choose the right gain matrix, you can get a stable performance. So, you take the position of the robot, multiply it by a constant. Uh, you take the velocity, multiply it by another constant. You do this for all of the states, add them up, and after subtracting it from the scaled reference, you have the output torque.
And this is where LQR comes in. Instead of randomly guessing this gain matrix like I did with the P regulator, it uses optimization to get the best performance. LQR uses a cost function to measure the robot's performance. The cost function penalizes things like state deviations and actuator effort.
For example, if the robot tilts too much or just smashes into the ground, it's going to get penalized because it deviated from its desired state, which is the upright position. And if the robot uses the actuators too much and waste power, it's going to get penalized as well. And that's actually what these terms in the cost function are. The first term penalizes the state deviations and the second term penalizes the actuator effort. So to balance the robot, I just set these two matrices based on how much I want to penalize each state or the actuator effort. I solve the optimization problem in MATLAB. And this way I'm going to get the gain matrix and have my controller.
The only problem with LQR is that to solve this optimization problem, you need to have a dynamic model of your robot. And this means solving a [ __ ] ton of equations.
Okay, this took way longer than I expected. Firstly, I chose this model.
Then I wrote down the energies of the system. I derived them with [music] respect to time. I did some partial derivatives and I was able to write down the dynamic differential equations.
[music] After that, I did some shitty linearization like sinx = x and cosine x = 1. I ignored the higher terms [music] and I was able to write down the equations in a linear form. Then I took this linear form and rewrite it into the state space equations. You can see here there's a 0% chance this is correct. I definitely had to have made some mistakes. But what is correct I think is the general structure. This structure looks like a guard pole. So I think the method I used is correct. It's just that I don't trust myself that I haven't made mistakes with these constants. So I wrote the code and I'm excited to see that it is stable. So this is very nice.
It's also controllable and observable.
Uh, which means that it's not going to get [ __ ] up and the poles are stable.
So, this is a stable system, which means that in theory, this controller should work. And what is the result of doing all this math and writing these equations is this game matrix. So, these four [ __ ] numbers are the entire result of my work. And these are the four numbers I'm going to use [music] to balance this robot. I'm a bit skeptical because I approximated approximations that are approximated and even stuff like this like the link masses I didn't weigh this entire robot I just kind of guessed what they are moments of inertia I approximated them as well so everything in these equations is a huge fractal approximation And holy [ __ ] the craziest thing just happened. So, I was testing the robot and this leg just started spinning like this and I wasn't able to overpower it because the torque was so high. The robot fell down. His leg fell off and it kept spinning. So, I had to turn it off quickly. Even got some small brushes on my hand. Yeah, I have no idea how that [ __ ] happened because uh there are limits on the torque and speed of the joints. Also, nowhere in the code does this motor move. It's stationary, so I don't know what happens. By this time, it was getting closer to my graduation and everything started catching up with me. The semester was ending, so I had to study for my finals. I still had an entire thesis to write and I had to study for my final state exams and prepare my thesis defense. [music] And throughout all of this, I kept discovering new issues with the robot.
At this point, I was pretty much speedrunning everything in my life. So, I'm going to speedrun this part of the video as well. After spending more time on the LQR controller, I noticed that one of the wheels was turning significantly less. At first, I thought this was caused by the fact I was using torque control. I guess there's a different friction for each wheel. So, one wheel [music] spins more than the other. I even tried correcting for this by using a P regulator to fix the velocity mismatch, but that wasn't it.
One of the motors was just 40% weaker.
After fixing the torque mismatch, the overall torque was still too low. I thought this was a problem with my LQR controller, but after some debugging, I decided to measure the actuator's torque and notice it was way off as well.
So, the weight is 200 g. That's a torque of 0.93 Newton m. [music] And after correcting the torque, my controller still didn't work. Ever since the accident, one of the motors started randomly turning off.
>> [music] >> It worked for a few seconds and then just went to sleep. The motor was also very unreliable. The voltage reading was way off. It just disconnects and then it raises to about 60 Ws. [music] And the second encoder didn't work at all. So when I turn on the motor and command it to move to zero position, [music] it moves here. So this should be the zero position. Now when I flip the switch, it should stay here. [music] And the power reading was wrong as well.
When I spin the motor shaft, [music] the power goes to about a thousand watts.
And I don't know if you've ever seen [music] a 1 kW motor, but this isn't 1 kW of power. After these tests, I concluded that the actuator is broken.
At this point, it was also the end of the semester, which meant I had my last finals ever. [music] So, I went to college, spent like a week studying for my thermal systems and electronic safety exams. I managed to pass both of them and returned home with a new plan.
Instead of using LQR, I was going to go back to using P and just try to make the robot work. So, I woke up early. I decided to spend the entire day working on this robot. And it finally works.
This is so sick. It's by no means perfect, but I mean, I got the robot to balance, and I'm going to spend the rest of today upgrading this guy and hopefully making it even better. All right, this test is going to be very important because I'm testing [music] not only the balance of the robot, but also if he can go up and down.
After the accident, I spent a week writing up the thesis, and I was left with a few days to prepare the robot for my presentation. I decided to switch all the actuators for the old ones. This meant the actuators wouldn't remember their absolute position. So, I had to program the stupid startup sequence where I start the robot in the same position every time, read the encoder data, and program the robot in reference to that. This was pretty lame, especially after spending so much money and time trying to avoid this. But hey, at least the robot wasn't trying to kill me. I spent the last days improving the robot. I stiffened the actuator so the robot wouldn't shuffle from side to side. I fixed the wheel jitter by adding a delay to the canvas messages. Let's go. I added a function that changes the body angle so the robot balances well at every height. And the robot was finished. Man, [music] this is so cool.
I spent so much time fixing this robot.
And I'm glad I didn't give [music] up until this happens the day before my graduation.
But that's the thing about robotics.
It's pretty hard. Making this robot involved a bunch of coding, electronics, calculus, and even linear algebra. And if you want to learn about these topics, I think a great way to start is with Brilliant. Brilliant is like a tutor that helps you learn STEM subjects in a fun and effective way. So the next time you get bored of scrolling through memes, you can try the Bland app for free and learn something useful instead.
They have classes on math, programming, data science, and even AI. And you also get your own tutor. So as you go through their interactive lessons, he sits in the corner of your screen and helps you if you get stuck. He also hypes you up when you get stuff right, which I really like. The Berlin classes I did were very nice. As I went through them, I didn't just read a block of text. They had me do these exercises, which are way better and more efficient. So, if you are a mechanical engineer and suck at coding or you haven't gone to college yet and want to get ahead, you can try Brillins tutor for free. Just click the link below or scan the QR code. You can also upgrade to premium and unlock all courses. And right now, my viewers can go to brilliant.org/taser and save 20% off an annual subscription.
So, how did it go? Did I get kicked out of school? Well, the robot was in pretty bad shape and I had less than a day to fix him. So, I reprinted only the essential parts and glued the rest. But after doing some tests, it was clear that the robot wasn't reliable enough, and I decided not to bring him to my thesis defense. Kind of sucks, but who cares, man? It's just cool. And I still have a bunch of videos to put into my presentation. So, wish me luck with the graduation. I will let you guys know if I passed in the comments. And after that, I will be going on a holiday to the USA. These last three months have been pretty tough.
Related Videos

Setting up a curved screen with Immersive Calibration Pro 4 and multiple cameras (P3D v4)
FlyerOneZero
23K views•2019-07-21

Robot Learning with Sparsity and Scarcity
allenai
379 views•2025-10-14

Jorge Mendez-Mendez: Unlocking Lifelong Robot Learning With Modularity (2023-10-05)
umassmlfl
237 views•2024-01-06

Northwestern’s MS in Robotics: Student Robotics Projects, 2023
NorthwesternEngineering
1K views•2024-05-31

"Perfect" Turns: Turning by the Gyro - FIRST LEGO League (FLL) SPIKE Prime + EV3 RePlay Programming
ZacharyTrautwein
94K views•2020-10-02

Gorkem Secer: TSLIP-based Deadbeat Running Control of Bipedal Robot ATRIAS
DynamicWalking-wv6qm
298 views•2018-06-22

Self-Driving Cars Need Lessons On Human Drivers | Maddie About Science
skunkbear
26K views•2018-08-21

Milrem Robotics’ THeMIS UGVs used in a live-fire manned-unmanned teaming exercise
MilremRobotics
99K views•2021-05-20
Trending

2.4 BILLION Records Got Leaked...
DeepHumor
15K views•2026-07-22

Playstation NO DISC/NO BUY Fight Is Over...
DavidJaffeGames
4K views•2026-07-23

Should I buy a Sawmill?
essentialcraftsman
29K views•2026-07-22

Americans Confused in Australia for 17 Minutes Straight
IWrocker
17K views•2026-07-23