My name is Thijs Roumen, Hasso Plattner Institute, and I
welcome you to on behalf of my co authors to this talk on
assembler^3. Here's a wonderful model shared in the laser
cutting community, which allows me to experience virtual reality
using my phone. But it's not a very inclusive model, it was
made with one particular user in mind, and for one particular
laser cutter to fabricate on. So I would like to make some
changes so that it becomes a useful model to me. As you can
see, I have glasses, so I would like to modify the model so that
it fits my prescription. And I would also like to be able to
adjust the inter ocular distance so that the image becomes sharp
for me. Reduce the weight, so it's a more comfy model, and
stretch it vertically, so that it allows my phone to fit in.
Recent research projects like FlatFab and kyub, allow me to
make model 3D modifications to the models, which allow me to
adjust the focal range here in a very trivial operation, I just
use a stretch tool and I move the front plate forwards.
Unfortunately, 95% of all models are shared in the form of 2D
cutting plans. So if I want to make that same modification to
the VR headset, I obviously need to change the top plate here.
But in order to do so I also need to adjust the plates it is
connected to. So those are
, for example, these two side plates, as well as the bottom
plate, otherwise, the model would be skewed. So I think what
I just did in kind of figuring out which plates I need to
modify, is I mentally
reconstructed the 3D model. Imagine what the modification is
that I want to make in 3D, and then execute that back on the 2D
cutting plan. We ran a user study and it turned out that on
average for participants, it took 24 minutes to approve it to
perform this operation. And 11 out of 13 models failed and we
fabricated them. So if users need to reconstruct a 3D model
of a 2D cutting plan Anyway, why don't we go for 3D right away?
There already is software as I just mentioned, that allows you
to convert 3D models to 2D cutting plans, but there's
nothing to go the other way around. So we built a system
called assembler^3 that uses a round trip to edit the 2D
cutting gland via 3D reconstruction. This workflow
turns out to be 10 times faster, and all models worked as a
result. Let's look at what assembler^3 really does.
Assembler^3 is a five step algorithm. First, assembler^3
finds the plates in the model, then it identifies joints on the
model, and it uses that information to derive the
material thickness off the model, then it tries to pair up
the joints that fit together. And in the last semi automatic
step uers help the assembler^3 algorithm to assemble the model.
In the interest of time, I'm going to focus on the last two
steps of that algorithm. So here is the 2D cutting plan of that
VR headset, we already found two joints in the model. But in
order to now find out what joints match up with each other,
we would have to compare every joint to every other joint in
the model, which would best lead to quadratic complexity for
every step. This quickly becomes intractable. So instead,
assembler^3 creates a lookup table, where all joints are
stored by the signature of their of their shape, which is known
as a hash data structure. For example, that particular joint
here is hashed by the signature of it's shape. And by looking
that up in the hash data structure, in constant time we
find the other candidates that it can pair up with. So rather
than looking at all the joints in the model, we only have to
look at this subset of six joints right now. And we're not
quite conclusive yet, we still have six different options. So
in the last step of the algorithm, we bring in the user
to actually disambiguate those options. Herem, the user loads
the 2D cutting plan in the 3D editor. And essentially puzzles
together to place using the assemble tool, you see that
whenever I select one of the plates, only the joints that are
relevant are highlighted, making this a relatively tractable
operation for a user. And the great thing is, we have been in
a 3D editing environment all along. So making a 3D
modification to the model now is just using one of the other
tools in the editor, in this case, the stretch tool, to again
fit it to my prescription.
We used assembler^3 to reconstruct 100 models that we
found in online repositories that are now all 3D and all
parametric in nature. So in conclusion, I have shown you how
assembler^3 allows users to assemble the plates together in
a 3D environment in this case kyub which effectively converted
the 2D cutting plan to a 3D model. This allows users to make
parametric modifications to the model and export it back to a
format that works on any laser cutter. It turned out this
workflow is 10 times faster than the traditional workflow. Thank
you for your attention.