#robots are complicated for a bunch of RECTANGLES
Explore tagged Tumblr posts
Text

Linktober Day 8 - Constructs
I call them roombas and imagined how nervous the constructs would get when they get too close to the edge of an island 😂
#linktober#linktober 2023#loz#linktober day 8#totk#tears of the kingdom#LOZ constructs#totk constructs#I heavily referenced screen shots of my own play through for these 😭#robots are complicated for a bunch of RECTANGLES#once again I get to shading and rendering and I don’t wanna do it anymore#I really like how this came out!
27 notes
·
View notes
Text
Behind the Scenes of System76: Industrial Design

Since moving into a factory space in 2018, System76 has delved deeper and deeper into manufacturing hardware in-house. Three years later, we’ve introduced five Thelio desktops, fine-tuned the hardware, developed our fully configurable Launch keyboard, and optimized our production processes. Helming the design process is Mechanical Engineer John Grano, who wears a number of different hats here. We sat down with John this week to discuss industrial design and the team behind our beautiful open source hardware.
How would you describe industrial design for people unfamiliar with the term?
To me, industrial design is basically the art of making something into a usable product. In industrial design, you have to balance looks and function, and that drives your form. It’s kind of like hardware UX in that it’s really important to have the right feel. If you can make the system connect better with people, they’ll like it more. Adding that softness we do with Thelio, like slightly rounded edges and darker wood, it makes it a little more approachable to have a semi-natural looking system and not something that’s blinking at you with red lights all the time.
System76 itself is a group of hardcore programmers and people that are really into Linux, but I think the idea of trying to democratize Linux is extremely important. If you can create something that doesn’t have that robotic aesthetic, it will provide people with something that feels more familiar and usable. No one really wants to go sit in a car that looks like a square with wheels on it. They want something that makes them feel something, maybe openness or comfort, when they’re in it.
What inspired you to get into mechanical engineering, and how did you end up at System76?
The way my brain works lends itself well to engineering, for better or for worse. There’s a lot of really solid engineers who don’t have much creativity, and then there are a lot of people who have great creative ability, but can’t do math. I kind of fluctuate in the middle; I wouldn’t say I’m the best at math or the most creative person in the entire world, but I have enough of each that the combination pushed me towards mechanical engineering. I like working with my hands, and it’s more of a study of how things work in the real world versus computer science, which is a purely digital and nontangible practice.
During school I worked mainly as a bike mechanic, and that helped me to think about how to build things better. That led me to my first internship at a bike company working in a wind tunnel, which was really fun. Realizing that I could probably never get a job there—or at least one that would pay me enough to live—I started working at an environmental engineering company, where I prototyped scientific sampling systems for R&D that would process materials with all these gasses at really high heat and tried not to die. It was kind of fun making these large-scale systems that were basically just gigantic science experiments, but I didn’t really have the creative outlet I wanted in terms of making something that looks good.
One of the main things that drew me to System76 was being able to have a solid influence on what tools we were able to use and how we were going to push the design. In the past three years, it’s pretty wild to see what we’ve been able to accomplish coming from a completely empty warehouse to being able to crank out parts.
I had also previously, while working at these scientific instrument companies, been working with a local company to design and develop a cargo bicycle, so I had that experience as well in terms of consumer product development with overseas manufacturing. I think that helped get me in the door here.

Let’s talk a bit about your team. Who do you collaborate with on a typical day?
It’s a very small team and everyone does a lot. I pretty much lead the mechanical engineering team slash design team...slash manufacturing team. Being a small company, we are all wearing a bunch of different hats. Aside from doing the initial design work on all of our Thelio desktops and the Launch keyboard, I also program our laser-punch machine and our brake press and run through all of the design for manufacturing hang ups that show up. Those changes tend to be a result of our current tools, and internal capabilities.
Crystal came on last August as our first CNC Machinist. She heads up all of the machining, trains our operators, makes sure our parts are coming out in a nice clean fashion, and has done a lot of work on minimizing machine time and maximizing the parts we can get out. She also provides really great feedback on what's possible and what kind of special fixtures or tools we'll need to make for a specific part. Around the same time we picked up our first Haas 3-axis CNC mill to start working on the Launch project. That led to some other opportunities to make parts for Thelio and improve the feel of some of the parts that we were pumping out.
We just hired Cary, who came from a similar background as me in consumer product development, as well as low-scale scientific machine development. He’s going to help build manufacturing tools for us, and he’s only been here now for two or three weeks. Going forward, Cary will be heading up the Thelio line long-term, and I’ll be moving to some interesting R&D work.
And Zooey?
Zooey doesn’t really do much. She just kind of sits there and waits for people to feed her their lunch. I take her out for walks during the day so she can get away from everyone petting her. She doesn’t like when they do that.
What was the R&D process like for Launch?
Launch is a less complicated product in that we don’t have to deal with things like cooling. Even dropping a PCB into aluminum housing deals with multiple processes, like using the laser and CNC machine. This was a start to looking at those processes to see how much time it takes to produce parts, the costs going into making them, and monitoring the cutting quality. You have to be familiar with the machines and know what you’re looking for when you see a tool going dull.
We first let the software experts do their thing and optimize a layout they wanted for their programming life. Then I was given that template, built a couple of sheet metal chassis that we wired up to test that layout, and made a bunch of little changes to that to get that right secret sauce for our keyboard-centric workflow in Pop!_OS. Once we got a sheet metal product that we were sure was going to be usable, we decided officially that we were going to pursue making a keyboard. That came with a whole new set of manufacturing requirements that we would have to look into.
We spent a ton of time working on pocket profile. When you look at a Launch, you’ll see that it’s not a perfect rectangle. That’s because when you’re using a mill, you have a round tool, so you can go through and get close to a pretty small radius on the corner, but you can never make it exact. If we wanted to get a very small, tight pocket, we’d have to use a very small cutter that takes an extremely long period of time.
We’re taking raw billet, which are these huge 12-foot-long sticks of aluminum that we cut down to get our final product. We went with a rounded rectangle so that we could use our cutter and decrease the overall time to machine that part. There was a lot of work in that and making sure the pockets were all 13.95mm versus 13.9mm versus 14.1mm.

We also did a lot of R&D on how we go about putting the angle bar on. Magnetic assembly seemed to be a good idea. We went from trying to glue magnets in to doing what's called press fitting. The bars come right out of powder coating while they’re nice and warm, when the aluminum is slightly larger than when it cools down. Those magnets aren’t actually adhered to anything in the bars; they’re squeezed in nice and tight from the aluminum cooling and contracting around them. That’s called a press fit, and doing that makes the process faster and less expensive.
It’s similar with the bottoms of Launch; we have steel plates that we press fit into that part as opposed to gluing or screwing, but that we do before powder coating; steel rusts, and we don’t want someone opening up their keyboard in a year and finding a little bit of rust floating underneath their super high-end PCB. So we do that, sand it down, use our media blaster to clean off the surface from the tool paths you see from the mill, and then we powder coat it through and through.

Word on the Denver streets is that Thelio Major is getting a redesign soon. What does that entail?
We’re bringing Thelio Major a lot more in line with Thelio Mega in terms of a different PCI mount for graphics cards, because we know that’s been a pain point for a lot of our users. We want to provide a little bit more robust installation for these graphics cards, which continue to increase in size and weight. The NVIDIA 3000-series cards are almost a pound heavier in some instances, and that’s a lot of weight to be shipping across the country.
We also want to continue to make Thelio Major cooler and quieter when it’s running with these new GPUs. Our new brake press allows us to make radius bends on parts, so we’re starting to run through R&D of a laser-welded external. It’s a wholesale departure from us using custom brackets and 3M VHB tape. That will provide a nicer finished product to our end user, and it’ll allow us to make our product faster with less material and less steps.
What qualities do you look for when adding someone to the team?
Creativity is extremely important. As a small manufacturing company, our priorities can shift on a day or in an afternoon where we don’t have the full line of product anymore. There are all sorts of examples in the past few years of times where you have to react pretty quickly. The motherboard’s been EOL’d, or we have to change our sheet metal design, build a new part, things like that. Making sure that someone can adapt to those changes on a moment’s notice is one of the key parts of the job.
We also want people who get excited about a new challenge and have the desire to keep improving something. I look for people who like to make things and go back in and refine it and not hold it up on this pillar. It’s good to not look at something like it’s perfect.
You have a lot of love for your Audi. What do you love about it over other options?
I like German cars. We have a family of them. They’re high-performance and not too expensive if you do all the work on it yourself. There’s a huge after-market community that tunes and changes these cars, which is pretty fun. Plus I prefer the metric system. Having a standard system drives me nuts, because what the [REDACTED] are fractions?
My real love, though, is bikes. I love tuning and riding bikes, and I love that more than I like to work on cars. It comes out of tinkering. I work with carbon fiber, I’ve done a lot of repairs on bikes over the years—there’s a certain sense of freedom you get from riding a bike that you can’t get from anything else. Not motorcycles, not cars.
#Launch#keyboard#mechanical keyboard#Thelio#desktop#System76#linux#open source#manufacturing#us manufacturing#industrial design#mechanical engineering#Pop!_OS#Ubuntu#desktops#laptops#servers#hardware#software#firmware#motherboard#metric#magnets#dog#press fit#prototype#art#Denver#Colorado
42 notes
·
View notes
Text
Had an interesting dream last night. Readmore’d for length.
Dreamed there was this extremely bourgie militant anarchist cafe where a couple of neural-network-powered robots were being tested as a publicity stunt associated with some other (vaguely awards-show-like) event, the one I remember being a clunky, sort of faceless fellow in a beige jumpsuit who could, in theory, cut bread, although I never saw him cut anything but was nonetheless slightly worried about trusting him with a knife. A couple of guys were talking about the difficulties in the neural network being able to recognize where to cut, demonstrating using complicated and in hindsight rather tasty-looking complicated, oval-shaped bread twist/braid things stuck to each other in various ways, the idea being that the robot would cut them into separate units along the obvious points of separation. The robot was connected by a couple of bulky tubes to a power unit or something that followed and played a song by the band that this was a publicity stunt for. Some guy and a cafe patron who looked vaguely like Bob Ross in a suit with no tie had a discussion about how the bourgieness of the cafe and the clientele made it difficult for neural-network-based AI to go wrong(???), using things like the patron’s minimalist wallet as an example. The cafe owner is an cartoony elderly Asian man (although I never see him in person in the dream, just sort of remember him), who owns a sort of Yorkshire terrier that hangs around the cafe.
There is then an interlude in which I am concerned about the fact that I posted this bizarre VR panoramic street level but also orbital photo thing without crediting in it, meaning that people might think that I’d taken it and get the impression I was living in Russia, specifically Sakhalin (the subject of the orbital part of the photo), and the city of Khabayinsk (which does not exist IRL) on Sakhalin (the subject of the street level part of the photo).
Then it’s the next day and it comes out that the militant anarchist cafe has been bombed by someone (never hear anything about who, but I theorize that it was a bunch of anarchists who were mad about an establishment catering to rich hipsters claiming to be anarchist), and its sign, which involved a red circle with two tools crossed in front of it reminiscent of but I don’t think a hammer and sickle, had been dyed blue (a symbol of how the cafe was conservative and reactionary, actually, so I suppose it was anarchists who blew it up) as well as smashed into pieces. I initially see this standing on the road in front of it (which didn’t strike me as looking as much at the time, but looking back on it now I have a very strong impression of a Japanese back alley along which the cafe would have had a small entrance), but then switch to standing in my kitchen surrounded by grocery bags of rubble, talking about it with my family. Fortunately, my cats (who are sitting in the bags of rubble because cats love their bags) are alright, but I get the impression that the terrier did not make it, although this is conveyed through a turn of phrase that I vividly recall as being weird and sort of confusing but nonetheless cannot recall--”completely _____” I think it was. Completely salvaged? Anyway, I feel sad about the dog, but not about the owner, who also died.
Then I am at a sporting event, pre-game, where a couple of knee-high rectangle robots (same sort of bauplan as the ones people pit against each other in robot fights, but utilitarian janitors instead of flashy warriors), also powered by neural networks, have gone haywire: one is going along the sides of the field, churning up red rocks from beneath it, and the other, a lawn-mower bot, has gotten into the stands and is trying to mow them, driving along the bottommost bench and shaving the top layer of plastic off of it. I accidentally attract its attention and it moves towards me in an alarming way, at which I quite understandably flee, to the crowd’s amusement.
3 notes
·
View notes
Text
[2019-04-08] Challenge #377 [Easy] Axis-aligned crate packing
Description
You have a 2-dimensional rectangular crate of size X by Y, and a bunch of boxes, each of size x by y. The dimensions are all positive integers.
Given X, Y, x, and y, determine how many boxes can fit into a single crate if they have to be placed so that the x-axis of the boxes is aligned with the x-axis of the crate, and the y-axis of the boxes is aligned with the y-axis of the crate. That is, you can't rotate the boxes. The best you can do is to build a rectangle of boxes as large as possible in each dimension.
For instance, if the crate is size X = 25 by Y = 18, and the boxes are size x = 6 by y = 5, then the answer is 12. You can fit 4 boxes along the x-axis (because 6*4 <= 25), and 3 boxes along the y-axis (because 5*3 <= 18), so in total you can fit 4*3 = 12 boxes in a rectangle.
Examples
fit1(25, 18, 6, 5) => 12 fit1(10, 10, 1, 1) => 100 fit1(12, 34, 5, 6) => 10 fit1(12345, 678910, 1112, 1314) => 5676 fit1(5, 100, 6, 1) => 0
Optional bonus fit2
You upgrade your packing robot with the latest in packing technology: turning stuff. You now have the option of rotating all boxes by 90 degrees, so that you can treat a set of 6-by-5 boxes as a set of 5-by-6 boxes. You do not have the option of rotating some of the boxes but not others.
fit2(25, 18, 6, 5) => 15 fit2(12, 34, 5, 6) => 12 fit2(12345, 678910, 1112, 1314) => 5676 fit2(5, 5, 3, 2) => 2 fit2(5, 5, 100, 1) => 80 fit2(5, 5, 6, 1) => 0
Hint: is there an easy way to define fit2 in terms of fit1?
Note that this is not the maximum possible number of boxes you could get if you rotated them independently. For instance, if you're fitting 3-by-2 boxes into a 5-by-5 crate, it's possible to fit 4 by varying the orientations, but fit2(5, 5, 3, 2) is 2, not 4. Handling the general case is much more complicated, and beyond the scope of today's challenge.
Optional bonus fit3
You upgrade your warehouse to the third dimension. You're now given six parameters, X, Y, Z, x, y, and z. That is, you're given the X, Y, and Z dimensions of the crate, and the x, y, and z dimensions of the boxes. There are now six different possible orientations of the boxes. Again, boxes cannot be rotated independently: they all have to have the same orientation.
fit3(10, 10, 10, 1, 1, 1) => 1000 fit3(12, 34, 56, 7, 8, 9) => 32 fit3(123, 456, 789, 10, 11, 12) => 32604 fit3(1234567, 89101112, 13141516, 171819, 202122, 232425)) => 174648
Optional bonus fitn
You upgrade your warehouse to the Nth dimension. Now you take a list of N crate dimensions, and N box dimensions. Assume that the boxes may be rotated in any of N! orientations so that each axis of the crate aligns with a different axis of the boxes. Again, boxes cannot be rotated independently.
fitn([3, 4], [1, 2]) => 6 fitn([123, 456, 789], [10, 11, 12]) => 32604 fitn([123, 456, 789, 1011, 1213, 1415], [16, 17, 18, 19, 20, 21]) => 1883443968
EDIT: if you want even more of a challenge, do this in fewer than O(N!) operations. There's no specific time goal, but my Python program finds the following solution for N = 20 in about 10 seconds:
fitn([180598, 125683, 146932, 158296, 171997, 204683, 193694, 216231, 177673, 169317, 216456, 220003, 165939, 205613, 152779, 177216, 128838, 126894, 210076, 148407], [1984, 2122, 1760, 2059, 1278, 2017, 1443, 2223, 2169, 1502, 1274, 1740, 1740, 1768, 1295, 1916, 2249, 2036, 1886, 2010]) => 4281855455197643306306491981973422080000
0 notes