Generalized Matryoshka Computational Design of Nesting … · 2017. 10. 13. · Generalized Matryoshka Computational Design of Nesting Objects. Title: matryoshka-pdf Created Date:

Post on 15-Aug-2021

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

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

115

Alec Jacobsonjacobson@cs.toronto.edu

Generalized MatryoshkaComputational Design of Nesting Objects

top related