 Hi, I'm Amit Thambyar. I'm a computational designer. I studied architecture, the building kind, and then I moved into programming and trying to use programming for creative applications. So the whole presentation is more design oriented, so if at any point, if I'm not clear or specific, feel free to talk. Let me tell you quickly what I mean by computational furniture. So this is the idea where I write a script which converts human parameters like age, weight, people, that people who are not familiar with programming or like logic or those sort of stuff can associate with, and convert it into a meaningful piece of CAD geometry, which can be good for fabrication, so that people can make furniture for real, and it's not playing. So between this and this, this is just a screen graph, there's a logic which translates these parameters into geometry, and it's giving a bunch of information which is useful for fabrication and also like the design itself. And this right now running is in an environment called Rhino and Grasshopper, which is kind of popular in the field of architecture and computational design. It gives you a programming environment to program 3D geometry. It has a bunch of CAD operations on a kernel inside which allows anyone to do this sort of stuff. So this makes it easy, but it's constrained to a desktop environment. So that's the fabrication part that I was talking about, like you take that vector file which is created on the fly, feed it into a CNC machine, which is basically, like you can think of it as a 3D printer, but just two dimensional, and you cut pieces out of plywood. And you assemble it in a certain log, like in a correct way so that they all interlock and provide structural rigidity. And then you end up with pieces like these which are really good to sit on. Some more examples. So that is how I started off with this, like this doesn't yet relate to JavaScript. I started that like a few years back and I made a bunch of samples and then was experimenting with the idea. But it was really cool to like, like interested to try make it more accessible. And that's how I thought of JavaScript. And then sort of like doing the same process, but on the web in the browser. And this is a live demo of search. It's the same thing that you saw. So it gives a representation of what the furniture design would look like. And the logic which I was mentioning earlier, which was in Grasshopper has been like, it makes it easier to do it in JavaScript instead of Grasshopper. And it makes this translation of the logic into this. And by clicking this, it gives you the file that you would need for anyone with access to a CNC machine to fabricate it. So this project, how I started off with has grown a little. And then now it's become more like a web app with a bunch of different moving components which allows anyone who's interested in this sort of idea to experiment and play with this. And so like when I started off with this, the idea was to make anyone who wants to make such sort of furniture make it easier for them to do it. Make it easy for the makers that who fabricate the thing to actually take it and make it out of plywood. Easy for them. Like they shouldn't need to know the complexities of JavaScript or furniture design or any of that. And then also make it easily accessible. So like what the web kind of fit perfectly into this. And this is the part that I'm talking about. The stuff that I'm working on is like stuff within the dotted line. And these are independent people who I think like might work with the platform. And the design that you saw earlier, that was like a prototype, which I made because I've been working on it, but that could be anyone. And the idea of encoding furniture design as a JavaScript file, those are these people. That's what I assume. And the makers are different people who can just like download a file and get it made and fabricated and whoever wants it can use it. So a little bit about how it's been going. So it's been going fairly okay. Where like it's like more and more people are taking interest in it. And there are different parts of it, right? Some people who want to make such furniture, some people who want to fabricate it and everyone has a different take away from it. A bunch of stuff that I think it might lead to is like reducing an entry barrier for furniture. This is like the more design oriented stuff. Like right now it's kind of difficult for furniture. Designers just start off with fabricating furniture because you need a studio, you need to line up with like production facilities and all of that. This might help, like this kind of approach might reduce that. Within aspects of furniture design, like I think this is far more interesting for me personally. It opens up like a new dimension of exploring furniture. Like conventionally furniture is a thing which is fixed, designed at one point in time and everyone's using it. But when you are able to program it, you can think of like different ways of how you wanna modulate the proportions, the different parts of the furniture to make it like either specialize it for something, for someone specifically specialized for a region or any other creative applications. Like I'm not sure how it could go. And then the idea of like everyone being able, everyone having access to the same quality, same standard of furniture, irrespective of where you are. Like the whole logistics part of it, it breaks down because when you're like calling for furniture, you're not ordering it like ship it from somewhere in the world, but you're just sending all the file to the closest maker around you who can make it for you. And this is kind of like I've bootstrap this heavily and a bunch of different technologies that I'm using to try to keep this up. So for a designer, a lot depends on like using understanding it, how to make it work. Like it's not central, but it's just like to collaborate with the community I would say. And a bunch of front end libraries. So the app and everything that you saw runs purely client side, nothing on the server side. And it's like this semi-hacky way put together to make it run. Yep, and like that was the main chunk of my presentation, which wasn't really focusing a lot on the technical bits of the JavaScript because I made it for another presentation. But the idea of this part was I perceive might be something useful, like valuable, where like you don't need servers or anything to do this. Basically every, like all the processing, the CAD engine, the kernel happens on the client side, which is not like CAD kernels are pretty computationally expensive. So it doesn't usually run on the front end, but using a bunch of libraries that I earlier mentioned makes creating procedural geometry on the fly, like verb knobs is really cool to work with, knobs geometry, which is like curvy and flowy and more aesthetically appealing, I guess more conducive for the human body form, like you can imagine straight lines are not that comfortable. And the idea of using 3JS to render it and also extract the information that you need to put it to a fabrication file. Cause in the earlier slide that you saw of fabricating it from just a CAD geometry. So that happened on the client side on the front end. And the whole idea right now is essentially like I'm piggybacking off of GitHub for like hosting, free hosting and the app runs on, so like there's no real hosting that I'm doing. It's just like a bunch of files put together and how each file talks to each other and coordinates broadly speaking as a community. And yeah, that's the meat of it. So anyone who's interested in furniture design or JavaScript and that sort of stuff might be cool to hear if you ever try it out, what do you think about it? Thanks. Yep, and if any questions, I think I have time. I have plenty of time to turn this on. Say something? Oh yeah, this would have been better. One question. You just say that it was easier to use than a grasshopper? Sorry? You said it was easier to use than grasshopper? As a designer, like grasshopper is a whole environment, right, so it lets you a bunch of things. I like it. It's a visual programming environment, so people who are not familiar with scripting makes it easier, but the logic and the underpinning is the same. Do you get what I'm saying? Okay, can you just show some? Yeah, that's what I'm trying. This is a grasshopper environment. This is the scripting environment for grasshopper, where you're connecting components. It's a visual node-based editor which makes modeling 3D, well, it's a way to do it, I would say. Starting in architecture schools, it's an introductory thing to get into programming and computational design, so it's very familiar. Grasshopper itself is a plugin into a 3D application called Rhino, which is used for 3D modeling. And this is what a parametric script looks like. And this is what a design file that you would write in JavaScript, but executing more or less the same things would look like, which is like JavaScript. Well, this is a part where you're defining the input variables, like the stuff that you see on the right, how the designer would convey to the user how he lets the specific design to be modulated, which the app can read, process like a UI for it, and the user can interact with it. And within the same file is the logic to convert the design into 3D. This is a very simple one, so that's why here you're just creating geometry, applying material, creating the mesh. This is the part where it lets the designer specify how they want the sections to be made out of it. And it should be such that they intersect and are forming a stable structure that anyone sets on. So you can think of this like the API, I don't know if I can call it that, but that's how you would design a design. It's more like an interface, not an API, sorry. Does that answer your question? If I would change the dimensions of the furniture, can it also maybe add an extra slice for support or something like that? Yeah, absolutely. You see this guy? So that's set up by the designer to do it. And the idea is like, this is my design, so I created it with a logic that shouldn't mean more or less spacing than like 12 inches or not. I don't remember some few inches, but that depends on whoever designing the furniture to make sure that it's stable. Thank you. How does a designer specify materials for the maker? Are there certain restrictions so that when it gets sent to a maker, they only make out certain things? Yeah, so like the framework that I've been playing with have so far primarily worked with plywood because that is stable enough. It depends on a lot on what's available. And so far I would say it is just plywood of a specific thickness. Well, the thickness is customizable, depending on how you want the furniture to be, but also thinking of it in aspects of safety, like people who haven't experimented with furniture might try to do it with acrylic, which works on small pieces. But if you scale it up for the bigger piece, then the structural stability isn't enough for it snaps or it's just more brittle. And the material that you saw in there, that's just for visualization. That is in the material. You're still thinking. Sorry? You're still thinking, I can see it. Can you show how you interface with 3JS? So 3JS is the library that I'm building on. The idea is like this is 3JS, running as an app within the web app. My app is specifically extracting geometry, providing a platform. So it's a library for me. I'm using it as a library. It's using a bunch of operations within 3JS and the community around 3JS to extract the vector geometry, to modulate lines, makes stuff easier. But the stuff you see left of this line is 3JS. And then in 3JS specifically, what is the geometry you're using? Well, this is one piece, right? This was my inspiration, which I started off with the earlier pieces that I was showing you. The idea is like limitless. There's a whole design company, and if people are submitting more designs, it could be anything. But for this one, I start off with a specific profile. So this is the inspiration for the geometry. I'll show this one. So this is something I did for Hackathon, where the idea was fetching, it was a proof of concept thing. It was fetching information about a person's genetic data from services like 23andMe. This is a competitor, I guess, to them. And using that to customize furniture. So broadly, figuring out how a furniture looks, how it should feel, and how I can customize it, that's kind of the design logic that comes in before you're making furniture, or before you're writing code, sorry. And then you figure out the mathematical relationships between how you want different parts of your furniture to move, and how with respect to each other. And it also corresponds with human anatomy. There's a whole library of anthropometric data about how body proportions should be, and all of that, which is ideal approach to do that, is you take that and pick an average, or pick an 80% of your target audience for a furniture design, and you customize it for that. But doing it live dynamically or procedurally lets you modulate that for a specific time, person without constraining your design to limitations like that. And then you figure out the proportions that you wanna be, and this is what the CAD file, the fabrication file looks like. This is what goes to the CNC guy, and basically he just needs this and the material thickness and money. So these are kind of the inspirations, so it's not about a specific geometry, but how you think of furniture, I would say. Did you implement an algorithm to do the layout of the laser cutting parts? Working on that right now, as I see. Because that would be an interesting algorithm. I have something working, not published or anything, but... Maybe you can show something? I don't have it right now, but you could check back or you could teach out to me after I can talk to you. All right, thanks. Are you looking for contributions? Are you like, what is the next step where maybe we could help? Oh, definitely. So this is the page that I was talking about, like everything is open, the idea of making such furniture. Like the idea is not super complicated, I would say. Like a company had to do it, they could definitely do it. But bring it out in the open where there are two parts. Well, one is the maker network, people who can fabricate such things. And that's most of the people that you saw earlier who have reached out and connected with me. And there's a bunch of designers, people who are interested in making such furniture. So I've had regular interactions with people who want to do an experiment with this. But that's really more keen. And furniture design is a part of it. I would also just like to hear people who are using, who try to experiment with this, or how the app is working for them so far. And like starting it is, I've made a how-to-getting-started guide, which starts off with a basic geometry and is meant to tell you how you should go. And the idea is like, if you clone this repo, all you need to really worry about is just changing this file, the design.js file. And that's where you set up how you want the design to change, the logic that you embed, which is all around here. And like this one has a more complicated design logic. Let me see if I can find that. How much time do we have left? Okay, we can see four minutes. So this is the design logic for this one, where it's slightly more complicated. And you start off with a framework of points, which sets it in a 3D environment. Well, it's one approach to do it. You figure out the points that you want to move, you specify those, create the lines between them, and a little bit of 3D, like 3D knowledge, would help make the geometry. So this is the starting state. And then I modulate these based on the user inputs, which is age, weight, or it could be anything. And then knob geometry helps you create smooth lines between any given points, like not always smooth, but, this is the process of adding it into the scene, like adding it into the app. This might look complicated, but like once you figure out the framework to do it, that's how it would be. There's another article that I can't find. I'm going to ask a tricky question. Maybe I missed it before, but did somebody else beside you made an object with us? Sorry? Did somebody else beside you made an object? No, not anyone so far yet. So that's the first contribution that I'm most keenly looking for. Well, it's a great room we have, so I'm pretty sure somebody's someone is going to do it, right? Yeah, I'm like getting started is not easy, difficult. Like getting started part is not difficult, but how you want to modulate furniture, that's more about furniture design. But it's like furniture is one thing that I've thought of. We always make like small things, cup holders, birds nest and all that sort of stuff, which is easier and like no one's going to fall if you make that. There was a pretty, really bad presentation this morning about augmented reality done by someone. So that's why I can say it was pretty bad. But I think using this also, when you, for example, change the parameter about the size, the width and everything, when you see the result in its context, it would run with 3GS. So maybe something also to explore. Yeah. I suppose you will be just outside of the room if people who are a little bit shy have more questions or want to do the first design contribution. Otherwise, thank you very much. Thank you so much. Thank you. So please.