Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
1
Alec JacobsonUniversity of Toronto
Generalized MatryoshkaComputational Design of Nesting Objects
2
3
4
5
6
Previous work enables computational design of reconfigurables
7[Garg et al. 2016]
Previous work enables computational design of reconfigurables
8[Garg et al. 2016]
Previous work enables computational design of reconfigurables
9[Garg et al. 2016]
[Zvyozdochkin & Malyutin 1890]
We present a method to generalize Matryoshkato arbitrary shapes
11
We present a method to generalize Matryoshkato arbitrary shapes
12
Nesting requires strict enclosure…
13
loose enclosure
Nesting requires strict enclosure…
14
enclosure
Nesting also requires removal
15
enclosed, but not removable loose enclosure
Nesting also requires removal
16
enclosed, but not removable
cut
loose enclosure
Nesting also requires removal
17
enclosed, but not removable loose enclosure
Nesting also requires removal
18
enclosed, but not removable enclosed and removable loose enclosure
We present highly parallelizable methods to…
• determine feasibility of nesting,
19
We present highly parallelizable methods to…
• determine feasibility of nesting,• find maximum scale,
20
We present highly parallelizable methods to…
• determine feasibility of nesting,• find maximum scale, and• optimize nesting scale
over some or all parameters
21
Our optimization utilizes rigid motionfor tighter nesting
39% 53% 63%
fixed position+rotation fixed rotation free22
Our optimization utilizes rigid motionfor tighter nesting
23
39% 53% 63%
fixed position+rotation fixed rotation free
Our optimization utilizes rigid motionfor tighter nesting
24
39% 53% 63%
fixed position+rotation fixed rotation free
We define valid self-nesting
25
A
AGiven:1. shape ,
We define valid self-nesting
Given:1. shape ,2. similarity transform ,
26
A
A
T T (A)
We define valid self-nesting
Given:1. shape , 2. similarity transform ,3. cut plane , and
27
AT (A)T
A
PP
We define valid self-nesting
Given:1. shape , 2. similarity transform ,3. cut plane , and4. removal trajectories
28
AT (A)T
A
PP
We define valid self-nesting
Given:1. shape , 2. similarity transform ,3. cut plane , and4. removal trajectories directions
29
AT (A)T
A
PP
We define valid self-nesting
Must have:1. , and2. no collisions along
either direction after cutting by
30
AT (A)
A
P
T (A)⇢
A P
We define valid self-nesting
Must have:1. , and2. no collisions along
either direction after cutting by
31
AT (A)
A
P
T (A)⇢
A PDefinition depends on choice of cut plane and removal directions.
Some configurations admit perfect self-nesting
32
convex shapes?
Some configurations admit perfect self-nesting
33
convex shapes?enclosure is easy ….
Some configurations admit perfect self-nesting
34
convex shapes?enclosure is easy ….but removal depends on cut plane!
[Zvyozdochkin & Malyutin 1890]
invalid
valid36
invalid
valid37
38
39
40
Perfect self-nesting requires visibility of cut plane at all points along removal directions
Our tool exploresnesting of arbitrary solid 3D shapes
41
Our tool exploresnesting of arbitrary solid 3D shapes
42
Our tool exploresnesting of arbitrary solid 3D shapes
43
We cast this as a computational design problem
44
Manual design with traditional tools would be tortuous
We cast this as a computational design problem
45
Manual design with traditional tools would be tortuous
We cast this as a computational design problem
46
Manual design with traditional tools would be tortuous
We cast this as a computational design problem
47
Manual design with traditional tools would be tortuous
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
48
Take a clue from order-independent transparency by “depth peeling”
49
Take a clue from order-independent transparency by “depth peeling”
50
Take a clue from order-independent transparency by “depth peeling”
51
52
Take a clue from order-independent transparency by “depth peeling”
[Everitt 2001, Bavoil et al. 2007][Baldacci et al. 2016]
[Shade et al. 1998][Inui & Ohta 2007][Faure et al. 2008]
[Kim et al. 2002][Myszkowski et al.1995, Knott & Pai 2003, Heidelberger et al. 2004]
[Goldfeather et al. 1986, Kelley et al. 1994, Hable & Rossignac 2005]
a.k.a. K-Buffer, Layered Depth Imagestransparencyshape diameterimage-based renderingCNC millingintersection volumeswept volumescollision detectionCSG operations
53
Take a clue from order-independent transparency by “depth peeling”
[Everitt 2001, Bavoil et al. 2007][Baldacci et al. 2016]
[Shade et al. 1998][Inui & Ohta 2007][Faure et al. 2008]
[Kim et al. 2002][Myszkowski et al.1995, Knott & Pai 2003, Heidelberger et al. 2004]
[Goldfeather et al. 1986, Kelley et al. 1994, Hable & Rossignac 2005]
a.k.a. K-Buffer, Layered Depth Imagestransparencyshape diameterimage-based renderingCNC millingintersection volumeswept volumescollision detectionCSG operations
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
54
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
55
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
56
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
57
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
58
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
59
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
60
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
61
Bad “codes”:• blue before orange• orange before green• orange before front-facing blue
62
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
63
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
64
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
65
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
66
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
67
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
68
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
Feasible!• all green
69
Step 1: we determine feasibility in real-timeby exploiting orthographic rendering
Feasible!• all green
“ping-pong” with 2 buffersGL_SAMPLES_PASSED
70
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
71
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
72
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
73
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
74
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
75
Step 2: binary search to maximize scale
Assume momentarily that shape is convex
Fix cut plane, center of mass, rotation
76
Step 2: binary search to maximize scale
For non-convex shapes binary search is conservative,
but in practice optimal
77
Step 2: binary search to maximize scale
For non-convex shapes binary search is conservative,
but in practice optimal
78
Step 2: binary search to maximize scale
For non-convex shapes binary search is conservative,
but in practice optimal
79
Step 2: binary search to maximize scale
For non-convex shapes binary search is conservative,
but in practice optimal
80
Step 2: binary search to maximize scale
For non-convex shapes binary search is conservative,
but in practice optimal
Step 3: optimize over all parameters
81
70%
0%
70%
maximize scale subject to nesting constraint
non-convex energy landscape
Step 3: optimize over all parametersvia particle swarm optimization
82
k parameter vector as point in nD
Step 3: optimize over all parametersvia particle swarm optimization
83
k parameter vector as point in nD
update each iteration according to “velocity”
Step 3: optimize over all parametersvia particle swarm optimization
84
pull velocity toward personal best and global best of swarm
k parameter vector as point in nD
Step 3: optimize over all parametersvia particle swarm optimization
85
random perturbations
k parameter vector as point in nD
Naive P-Swarm would treat scale as just another parameter (coordinate)…
86
… instead optimize over all others,
87
all other parameters
… instead optimize over all others,
88
… instead optimize over all others, and search for max scale
89
… instead optimize over all others, and search for max scale
90
abort search early if upper bound < best
Our optimization enables fully automatic Matryoshka generation…
91
Automatic Upright Custom Cut Plane
63%60% 56%
fully optimized
… or partially constrained interactive design
92
Automatic Upright Custom Cut Plane
63%60% 56%fixed upright orientation
… or partially constrained interactive design
93
Automatic Upright Custom Cut Plane
63%60% 56%
+ fixed cut plane
Tool performs fast enough for interaction
94
Tool performs fast enough for interaction
95
We validate our results via 3D printing
96
We validate our results via 3D printing
97
We validate our results via 3D printing
98
We validate our results via 3D printing
99
We validate our results via 3D printing
100
We validate our results via 3D printing
101
We validate our results via 3D printing
102
We validate our results via 3D printing
103
We validate our results via 3D printing
104
We validate our results via 3D printing
105
We accommodate printer tolerances by nesting within an offset surface
106
Our tools trivially generalize to nesting disparate shapes
107
Limitations & Future Work• no global optimum guarantee
108
Limitations & Future Work• no global optimum guarantee• search assumption too conservative
109
Limitations & Future Work• no global optimum guarantee• search assumption too conservative• thin shapes don’t rigidly nest well
110
Limitations & Future Work• no global optimum guarantee• search assumption too conservative• thin shapes don’t rigidly nest well• deformable nesting?
111
Limitations & Future Work• no global optimum guarantee• search assumption too conservative• thin shapes don’t rigidly nest well• deformable nesting?
1. deform during design
112Prevost et al.
Limitations & Future Work• no global optimum guarantee• search assumption too conservative• thin shapes don’t rigidly nest well• deformable nesting?
1. deform during design2. nest soft physical objects
113Bickel et al.
Acknowledgements…David LevinNSERC Discovery Grants (RGPIN-2017-05235 & RGPAS-2017-507938)Connaught Fund (NR-2016-17)Adobe Systems Inc.Kevin Gibson, Masha Shugrina, Michael Tao, and Alex Tessier
114