Hi, I'm Steve. I'm a Swiss software engineer. I like to thinker. I like to make things. I
like to share the thing that I like and the thing that I make. This talk is a lot about
these kind of things. And the story starts, as many stories started today I think, in
2020, 21. And for some reason lots of people started to pick up new hobbies and I was no
exception. So I started to do 3D printing. And it was a lot of fun. I bought a cheap Chinese
printer. I think you're quite a bit with it. And I must admit the hardware part was not
really my thing. I was more into the modeling part. But yeah, lots of fun. The thing is it
was not as easy to share with friends. A lawyer friend, they're not going to thinker as much as
I do. So it's more difficult to share. The thing is the machines are getting better nowadays.
They're getting closer to being appliances. And so I can share them with them. And I can try to
share the hobby, generally speaking. And the good thing is the modeling part, people are not going
to model. I assume that these people that are interested potentially in 3D printing, that are
going to interested. They're going to go on one of these websites, if you don't know, they're a
repository of 3D models. And they're going to apply a very simple workflow. And they're going to
download the model. They're going to slice it. So use the software that you tell the software,
what is the model, what is the filament you use, what is your printer, and it magically spouts out
a file. That is a print. That is just it. It's very simple. And if you're not technical, that's
perfect. And I've been using this workflow for different things. If you look on the left, you
have this thing that you might be using. And it's a way to make snowballs that are perfectly
shaped. And if you remember, I'm a Swiss engineer, so I like my snowballs to be perfectly shaped.
The other ones are not beer crates, because I don't have a printer that big. Therefore,
batteries. Anyway, they're great models. They're simple models. They're fun to print. They're
fun to share with people and to give them and all things like that. And this is not what I'm going
to talk about. You know, these are very well modeled and shared as just a single file. What I want
you to talk about are things that are more like that. So this is a very good project that you can
find on printables called the Honicom Storage Wall. So it's a way to do pegboards for the printing.
You have this base plate, which is a Honicom that you put on your wall and then the community
has gone well and done a bunch of different attachments. And you can attach anything. So here
it's probably in someone's office, but I've seen people using it in their bathroom, in their
kitchen. You have attachments, people model attachments for everything. And it's just great.
There's a lot of big community around it and all these kind of things. So I'm not going to talk
about the attachments and modeling the attachments here. I'm going to talk about the plates. Because
what happens is, you know, these things are made for 3D printing and 3D printers that tend to,
you know, have different sizes and different beds. And this is what you can see in this file. You
have different sizes of base plates that correspond to popular printers. They're not going to cover
all of them, but you know, you can get quite far. You then have people who want to have, you know,
nice borders because, you know, perhaps it's in for their kitchens and they want to have the kitchens
being looked really well. And so people, you know, the community has provided. But then you get into
these explosions of combinations and you don't have it covered necessarily by the community. And
I can see people in the back just screaming parametric models. And yeah, yeah, I know. And this is
what we usually think about it. And I mean, small parametric models, software, and anyway, I don't
think these are the best answers. This is the best work, one of the best ways that we have now. But I
think we can approve on it. And I'm going to show the limits first. And the people making the
honeycomb storage wall projects are really good. And they have shared their the files that they've
used to build. So they build the thing with Fusion 360. They also have some people in the community
have re-implemented the model in OpenSCAD. And I'm just going to walk the, you know, the simple
workflow I was at the beginning, you know, download slice print, what it looks like if, you know,
you were new to 3D printing and you want to, you know, change the size of your build plate. So you
download the model, this part of the same, then you have to find the hobby version of Fusion 360,
or I don't know what it's called now. And if you try to do that, you know what I mean, it's not
easy to kind of hide it. And then, you know, they try to get some money. If you figure that out,
then you download it, pick sometimes a big file. Then you just, you know, you have a professional
tool in front of you. And presently, I, you know, I'm comfortable with Fusion 360. This is what I
use to actually learn CAD. So it's quite nice. But, you know, you just have a huge program in front
of you and you don't know what to use. Perhaps you, like me, and say, oh, it's a challenge, I'm
going to be interested and watch a lot of video and learn how to CAD. But perhaps then when you're
done, you just don't know what you were trying to do. Or, you know, what is more likely to happen is
you're going to abandon. You know, you're not going to customize it, or perhaps you're going to ask
your friend who's more technical to do it for you. With OpenSCAD, you have something that's
similar. I'm going to go faster. So download the model, then you download OpenSCAD. And the thing is,
perhaps you're, you know, it's an open source thing. You don't know exactly what it is. It
doesn't look as professional as the other tools. And, you know, the computer telling you, oh,
it's not only software, you're sure, perhaps you're just going to abandon there because you don't
trust it. Then, you know, it's code CAD. I love code CAD. But if you're a lawyer, code CAD is not
your thing. And perhaps you're going to try anyway, but you're going to change the wrong line and add
the wrong type of code and all these kind of things because, you know, not everyone is a
programmer. And so, you know, you're going to feel that you're going to abandon and you're not going
to have the thing that you want. So what do we want? We want to lower the bar for the end user,
make it, you know, make these parametric models accessible to everyone. And the solution that,
you know, proposes to have something that works very fairly similar to what we have before. You
just add the configure model step and then, you know, download, slice and print. And how can you
do that? You have these web generators and configurators. I don't know if you know them,
but typically, if I want to create a QR code, I just, you know, Google QR code generator,
I skip the first five because there are probably just lots of ads in there and I know the good one.
I don't remember right now, but, you know, you have these kind of things for these two. It's
single serving for a particular purpose. And it's just great. And there is no reason, or there might
be a little bit, why we shouldn't share our parametric model that way. You know, it's just
software to just do one thing, you know, the UNIX philosophy. And so what I have is a QR code
for you. You don't need to go there, but it's because you can see it here. So it's a configurator
that, you know, creates the Honeycomb wall storage thing. In the middle, you have the model. If you
are on the top, you have something to configure it, you know, the number of rows, the number of columns.
And here you can just download. You can see what goes, you know, configure, download. I don't have
the slicing and the printing because it's another tool. I don't want to implement a slicer and a
printer in my software. It's just something very simple. And you know, you have a couple of things
where you can edit, you can see the code and all these kind of things because, you know, we share
stuff. The code is open. Just go. What you're thinking is, I don't want to build my own configurator
because it's, you know, you have them to maintain a server. You have to pay for it. You know, you
have many reasons that you might have. Oh, I just went a bit too far. But, yeah. Yeah, you don't want
to pay for it. Many reasons that you might not want to do it, right? Because perhaps you're more
back-end person and you don't really care about building the UI. Perhaps you're more, you know,
you don't want to touch C++ or you don't want, you know, you don't want to install, to compile
some stuff on servers. You know, many reasons you don't want to do that. And so the thing that
you've already seen because there was a bit of spoiler, we want to lower the bar for the maker as
well. And the way that I've been trying to do that is with this project that I've been building. So
it's not the first purpose. The first purpose is going to come later. It's just a bit of suspense.
But with Replicad, you can, you know, as someone who is interested in code, make a web configurator
very easily. So what is Replicad in that context? First is the online workbench for CodeCAD. So if
you want to do CodeCAD, so it's drawing with code, you can just go to the workbench and you
code on the left and you have your model on the right. It's something that, you know, was
probably originally done by OpenSCAD. You have many, many different examples now. You have
cat query, you have something similar. And in the terms of something purely online, you have
something called Cascade Studio that exists. So it's nothing completely new. But you have it there,
it's something that exists. You can do your model. Then it's something that is a bit different.
It's a dot in JavaScript TypeScript. And perhaps some people are just, why would you choose JavaScript?
Many reasons. It's a great language now. You should try it again. And the second one is,
if you are actually new to CodeCAD, you might want to learn to code. And there are lots of
resources for JavaScript online. It's, you know, it's a bit everywhere. And so there's a lot,
there are lots of resources to learn it. Also, NPM exists. If you want to do some
Voronoi stuff, there's a library for that. So it's also quite nice to just use a language
and not have a specific language for what you do. It uses the OpenCascade kernel. So it means that
you can make fillets as well as you can make them in FreeCAD, which, you know, means what it means.
It, I mean, it means it's a powerful kernel. It's not perfect, but it's very powerful. So you can
do lots of things with it. And the last thing, which is coming back to why I was introducing
Replicant in the first place, we have a built-in web configurator. So, you know, you draw your thing,
you can download the model, or you can click on something to share it, and you generate the link.
And the thing that if you, perhaps, didn't let you the time to open the configurator that had before,
is what you have directly. Just, you know, a bunch of parameters that you expose,
a way to download it. It's very simple. But it's not everything. The first thing, you know, as a
software developer, we build things for ourselves. And so, you know, I'm saying that I'm rolling the
bar for the end user and, no, no, I'm doing it for myself. But it also means that, you know,
perhaps you're a bit like me, and you're a web dev, and it means that the bar is also lower for you
to build things with this. So perhaps in the list of things that I had before, some of them say,
well, it's not that bad to build your own UI paths. I want to. And actually,
replicates this library, and so it means that you can. I can just import it. You build your own
front-end project and use it to the library. And as an example, I'm going back to my conference-driven
development project that I had before. And here, you can look in the corner, and it's just parameters,
right? It's not that great, because what I want is distances. I don't want rows and columns. And so,
oh, what you'd have to do is actually do a bunch of math before actually, which is not very good
either. So I did another project that you can look at, which is what you expect. It's an online
configurator that just generates the same model than the other one did, but with my own UI. So it
doesn't, you know, it shares some resemblance with the other model, because, you know, I'd meet both,
and so I have a bit of style or try to. And the thing is, now you have distances. You don't need
to have rows and columns and do the math, etc. Yeah. You have an undo button, because it was already
there in the thing that I copied, but you might want to do undo in your particular project. But
it's something that I built just for that. And there is a viewer, and actually it's more responsive
than the other, because I spent five minutes to do the responsiveness and all these kind of things.
So this is what you can do with this kind of thing. And my aim was to use CAD as a web API.
Nowadays, the browser is just an amazing piece of software. You can do audio in it. You can do,
you know, 3D rendering, which I use actually. But drawing stuff with CAD is not something that is
there by default, which is probably a good thing. But you might want to do CAD in the browser anyway,
and perhaps use replica for that. That's kind of my point. Actually, you know, going back to
why I did it, this is something that I did. Another thing that I'm into is making boxes for board
games. Don't ask, you know, people have some more niche hobbies. And so I made a specific UI for
making boxes for board games. So, and it generates the box. But, you know, someone might want to
generate documentation or to make the first step and not have to install a free CAD for that. So it
might be a tool for it. Or, you know, if you have some specific needs, perhaps just for hobbies,
but for work, it's something that you could use. It's kind of my point. And so if, you know, we get
in towards the end of the day, and we're going to think a bit about what have we learned. The first
thing that I didn't really mention, but I want to stress, because it's quite important, you know,
I've said, oh, perhaps not great to share things, you know, parametric models. Actually, there's no
wrong way to share stuff, right? It's just, let's try to be better about it. The thing that you can
do is we can lower the bar, make it easier to share parametric models and, you know, as configurator,
especially. And then, if you were a bit code-cautious and want to play with these kind of things,
perhaps have a look at the workbench. You know, there's a bit of a community on the GitHub
repos. You can ask questions, discussions, people are interested. So have a look. And if you are a
web dev and you want to do a bit something more involved, you can think of replicat as a library
to work. And so this is all I had for you. I hope you had fun.
Do you have any questions?
You make this sound so easy, which is wonderful. But where were the dragons?
I mean, part of the thing is, was learning, I mean, I rely a lot on a project called OpenCascade.js.
And to me, the dragons are here. Copiling C, C++ is not something that I want to do.
And so I could avoid them. Then, it's lots of fun of, you know, building the thing, trying to
figure out the different technologies and things like that. There was no, I mean, and then it was
about learning OpenCascade. And, you know, one of the things that a replica does is it tries to
handle memory as well as possible, because OpenCascade is C++. And, you know, you have to manage
some times the memory. And there are definitely memory leaks in my project, but, you know,
you're welcome to find them and fix them. But yeah, it was trying to find ways to do that. At
some point, I designed the API to handle it. And then I found a way that was better to just have
it magically disappear. So when will you buy a laser cutter? So you also make laser cutter boxes?
Actually, it won't be, I don't have a laser cutter and I've been, you know, resisting buying one for a
while. Before getting into 3D printer, I bought a silhouette machine. So, you know, it's to cut
paper. And if you go to the website, the deck in the box website to make boxes, before making the
3D printed boxes, I mean, boxes in paper. And so you have the die lines and it generates, you know,
you have the same interface to generate die lines to cut things for paper. But yeah, so, you know,
I'm resisting as much as I can. And perhaps there is also one thing that is a bit of a dragon,
that is perhaps a rabbit hole that I partially fell into, is the 2D part, because the OpenCascade
is not that great for 2D Boolean operations. And so I started to implement them by myself and I'm,
you know, starting to build a 2D CAD kernel and it's getting a bit out of hand.
Great talk. Thank you. Have you ever thought about free CAD import or kind of a connection to free
CAD as modeling free CAD might be easier than coding it? I'm not sure exactly how that would,
I mean, you can import step files, but then you have, you know, the whole model and the way it is,
I'm not sure that it would be easy to do. And part of the thing with code CAD that, you know,
makes it easier, typically, you know, you have the type of naming problems that they're, they're
solving currently, you don't really have it, because instead of selecting by, you know, the
number, you know, which one you have in the array, because you clicked on it, you can say, oh, I want
to take the edge that is at this distance from that, because you know this when you, you know,
you model and batch, yeah, you have to do a little bit of mass to figure out what is the distance
and things like that, but normally it's basic geometry and you're going to have it wrong and
do it again, but it's going to be okay. And so, no, the answer, short answer, sorry.
Okay, thank you, Steve. Thank you.