3D Interlocking Assemblies: Design and Applications Peng SONG, SUTD - - PowerPoint PPT Presentation

3d interlocking assemblies design and applications
SMART_READER_LITE
LIVE PREVIEW

3D Interlocking Assemblies: Design and Applications Peng SONG, SUTD - - PowerPoint PPT Presentation

3D Interlocking Assemblies: Design and Applications Peng SONG, SUTD 3D Assemblies Composed of multiple component parts with a specific form and functionality Steady Assembly Need parts joining approach to restrict parts relative movements


slide-1
SLIDE 1

3D Interlocking Assemblies: Design and Applications

Peng SONG, SUTD

slide-2
SLIDE 2

3D Assemblies

Composed of multiple component parts with a specific form and functionality

slide-3
SLIDE 3

Steady Assembly

Need parts joining approach to restrict parts relative movements

slide-4
SLIDE 4

Parts Joining

Unsteady Irreversible Break parts Tedious

slide-5
SLIDE 5

Interlocking Assembly

Can we make a steady assembly without relying on any fasteners?

slide-6
SLIDE 6

Interlocking Assembly

Can we make a steady assembly without relying on any fasteners? Solution: parts connected based on their geometric arrangements.

slide-7
SLIDE 7

Interlocking Assembly

Can we make a steady assembly without relying on any fasteners? Solution: parts connected based on their geometric arrangements.

slide-8
SLIDE 8

Intriguing Properties

Steady Disassemblable Ease of assembly

slide-9
SLIDE 9

Applications

slide-10
SLIDE 10

Formal Definition

Deadlocking Non-interlocking Interlocking

An assembly is interlocking if only one movable part (key), while all

  • ther parts, as well as any subset of the parts, are immobilized

Test interlocking has exponential complexity!!!

slide-11
SLIDE 11

Interlocking Assembly: Design Problem

Input: target shape Output: interlocking assembly

slide-12
SLIDE 12

Input: target shape (with segmented parts) Output: interlocking assembly

Interlocking Assembly: Design Problem

slide-13
SLIDE 13
  • Need to test immobilization of every single part and every subset of parts

Challenge #1 Test Interlocking

slide-14
SLIDE 14
  • Need to test immobilization of every single part and every subset of parts

Challenge #1 Test Interlocking

slide-15
SLIDE 15
  • Need to test immobilization of every single part and every subset of parts

Challenge #1 Test Interlocking

slide-16
SLIDE 16
  • Need to test immobilization of every single part and every subset of parts

Challenge #1 Test Interlocking

slide-17
SLIDE 17
  • Need to test immobilization of every single part and every subset of parts

Challenge #1 Test Interlocking

slide-18
SLIDE 18
  • Need to test immobilization of every single part and every subset of parts
  • A subset of parts can be movable along different directions simultaneously

Single-direction movement Single-direction movement Multi-direction movement

Challenge #1 Test Interlocking

slide-19
SLIDE 19

Assembly can be progressively disassembled into a set of individual parts

Deadlocking assembly Input: segmented parts

Challenge #2 Disassemblable

slide-20
SLIDE 20

Deadlocking sub-assembly Input: segmented parts

Challenge #2 Disassemblable

Assembly can be progressively disassembled into a set of individual parts

slide-21
SLIDE 21

Need to construct parts geometry such that every single part and every subset of parts are immobilized, except the key

Input: segmented parts

Challenge #3 Parts Immobilization

slide-22
SLIDE 22

Input: segmented parts Movable parts group

Challenge #3 Parts Immobilization

Need to construct parts geometry such that every single part and every subset of parts are immobilized, except the key

slide-23
SLIDE 23

Input: segmented parts

Challenge #3 Parts Immobilization

Need to construct parts geometry such that every single part and every subset of parts are immobilized, except the key

slide-24
SLIDE 24

Input: segmented parts Interlocking Assembly

Challenge #3 Parts Immobilization

Need to construct parts geometry such that every single part and every subset of parts are immobilized, except the key

slide-25
SLIDE 25

Interlocking Assembly: Related Works

1978 2012 2011 ancient 2015 2016 2017 2018

slide-26
SLIDE 26

Interlocking Assembly: Related Works

1978 2012 2011 ancient 2015 2016 2017 2018

slide-27
SLIDE 27

Interlocking Assembly: Related Works

1978 2012 2011 ancient 2015 2016 2017 2018

slide-28
SLIDE 28

Overview

Recursive Interlocking Puzzles SIGGRAPH Asia 2012 DESIA: A General Framework for Designing Interlocking Assemblies SIGGRAPH Asia 2018

slide-29
SLIDE 29

Overview

Recursive Interlocking Puzzles SIGGRAPH Asia 2012 DESIA: A General Framework for Designing Interlocking Assemblies SIGGRAPH Asia 2018

slide-30
SLIDE 30

Interlocking Puzzles

2D puzzle 3D puzzle 3D interlocking puzzle

slide-31
SLIDE 31

Interlocking Puzzles

3D interlocking puzzle

slide-32
SLIDE 32

Our Goal: Design Interlocking Puzzles

Input: voxelized model Output: K interlocking parts

slide-33
SLIDE 33

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized C(K, 1) C(K, 2) C(K, 𝐿/2 ) + + … = 2("#$) subsets of parts

K = 5

..

slide-34
SLIDE 34

Test Interlocking: Parts Immobilization

K = 5

..

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-35
SLIDE 35

+x +y

Test immobilization: P1 (movable along –x, +x, -y, +y?)

P1 ..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-36
SLIDE 36

+x +y

P1: not movable along -x

P1 ..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-37
SLIDE 37

+x +y

P1

P1: not movable along +x

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-38
SLIDE 38

+x +y

P1

P1: not movable along -y

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-39
SLIDE 39

+x +y

P1

P1: movable along +y

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-40
SLIDE 40

+x +y

P2 P1

P1P2 : not movable along -x

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts

slide-41
SLIDE 41

+x +y

P1

P1P2 : not movable along +x

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts P2

slide-42
SLIDE 42

+x +y

P1

P1P2 : not movable along -y

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts P2

slide-43
SLIDE 43

+x +y

P1

P1P2 : not movable along +y

..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

2("#$) subsets of parts P2 Test mobility of 4 axial directions

slide-44
SLIDE 44

2("#$) subsets of parts

+x +y

P1

P1P2 : immobilized

Test mobility of 4 axial directions

×

Total cost = ..

Test Interlocking: Parts Immobilization

An assembly is interlocking if only one movable part (key), while all other parts, as well as any subset of parts, are immobilized

P2

slide-45
SLIDE 45

Challenge : Test interlocking for puzzle with K > 20 parts is too computational expensive; Yet, we want to design interlocking puzzles with K as large as possible (e.g., K = 100)

The complexity of testing interlocking is exponential in K

K = 30 K = 10 K = 20 K = 40

Test Interlocking: Parts Immobilization

slide-46
SLIDE 46

Key Idea #1: Formal Model

slide-47
SLIDE 47

P1 P2 P4 P5 P6 R9 P7 P9 P8 P3 Global Interlocking R9 P9 P8

R2 P1 P2

P2 R3 P3 R4 P4 P3 R5 P4 P5 R6 P5 P6 R7 P6 P7 P8 P7 P8

R1 P1 S

Local interlocking groups

Skip the exponential time complexity of testing global interlocking!!!

slide-48
SLIDE 48

R2 R3 P1

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking

P1 P2

[P1, P2, R2]

P2 P3

[P1, P2, P3, R3]

P1

Key Idea #2: Partition Requirements

slide-49
SLIDE 49

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking

[P1, P2, R2]

P2 P3

[P1, P2, P3, R3]

R2 P1 P2

Key Idea #2: Partition Requirements

slide-50
SLIDE 50

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]

[P1, P2, R2] [P1, P2, P3, R3]

P2 P3 R2 P1 P2

Key Idea #2: Partition Requirements

slide-51
SLIDE 51

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]

[P1, P2, R2] [P1, P2, P3, R3]

P3 R2 P1 P2

Key Idea #2: Partition Requirements

slide-52
SLIDE 52

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]
  • 3. Pi is connected; Ri is connected

[P1, P2, R2] [P1, P2, P3, R3]

P2 P1 P3 R2 P1 P2

Key Idea #2: Partition Requirements

slide-53
SLIDE 53

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]
  • 3. Pi is connected; Ri is connected

[P1, P2, R2] [P1, P2, P3, R3]

P3 R2 P1 P2

Key Idea #2: Partition Requirements

slide-54
SLIDE 54

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]
  • 3. Pi is connected; Ri is connected

[P1, P2, R2] [P1, P2, P3, R3]

R2 P1 P2

Key Idea #2: Partition Requirements

slide-55
SLIDE 55

R3

Given [P1, …, Pi-1, Ri-1], partition Pi-1 (i>1) into Pi and Ri such that

  • 1. [Pi-1, Pi, Ri] is interlocking
  • 2. Pi is disassemblable in [Pi, Ri]
  • 3. Pi is connected; Ri is connected

[P1, P2, R2] [P1, P2, P3, R3]

P2 P1 P3 R2 P1 P2

Key Idea #2: Partition Requirements

slide-56
SLIDE 56

Seed Voxel

x z y

Blocking & Blockee Voxel Pair Selected Path Blocking & Blockee Voxel Pair

Construct the key piece P1 (movable only along +x)

Key Idea #3: Constructive Approach

slide-57
SLIDE 57

Construct the 2nd piece P2 (immobilized by the key)

x z y

Seed Voxel Blocking & Blockee Voxel Pair Selected Path Blocking & Blockee Voxel Pair

Key Idea #3: Constructive Approach

slide-58
SLIDE 58

Our Result

slide-59
SLIDE 59

Our Result

slide-60
SLIDE 60

Our Result

slide-61
SLIDE 61

Our Result

slide-62
SLIDE 62

Summary of the project

  • A formal model to directly guarantee recursive interlocking based on

building local interlocking groups (LIGs)

  • Requirements to ensure local interlocking of intermediate assemblies

when extracting each puzzle piece

  • A constructive approach to iteratively generate geometry of each puzzle

piece

slide-63
SLIDE 63

Song et al. Printing 3D Objects with Interlocking Parts. CAGD (Proc. of GMP), 2015

Follow-up Work: Interlocking Objects for 3D Printing

slide-64
SLIDE 64

Follow-up Work: Interlocking Objects for 3D Printing

Song et al. Printing 3D Objects with Interlocking Parts. CAGD (Proc. of GMP), 2015

slide-65
SLIDE 65

Overview

Recursive Interlocking Puzzles SIGGRAPH Asia 2012 DESIA: A General Framework for Designing Interlocking Assemblies SIGGRAPH Asia 2018

slide-66
SLIDE 66

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-67
SLIDE 67

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-68
SLIDE 68

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-69
SLIDE 69

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-70
SLIDE 70

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-71
SLIDE 71

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-72
SLIDE 72

Full design space

The Recursive Interlocking approach can explore only a limited design space

LIG design space

Motivation

slide-73
SLIDE 73

Can we have a general framework to design interlocking assemblies that can explore the full search space of all possible interlocking configurations?

  • 1. Provide more design flexibility
  • 2. Useful for designing new interlocking assemblies

Our Goal: Design Interlocking Assembly

slide-74
SLIDE 74

Our Key Idea: Graph-based Representation

Test and design interlocking assemblies Directional blocking graphs Invented by Wilson [1992]

G(+x, A) G(+y, A)

+x +y

A

slide-75
SLIDE 75

Contribution #1: Test Interlocking

All graphs are strongly connected

(except the key part)

The 3D assembly is interlocking Polynomial time complexity!!!

G(+x, A) G(+y, A)

+x +y

A

slide-76
SLIDE 76

+x +y

Test Interlocking: Directional Blocking Graph

Given an assembly A and a certain axial direction d

slide-77
SLIDE 77

+x +y

Test Interlocking: Directional Blocking Graph

Create a directed edge from Pi to Pj iff Pj blocks Pi from translating along d

slide-78
SLIDE 78

+x +y

Test Interlocking: Directional Blocking Graph

slide-79
SLIDE 79

+x +y

Test Interlocking: Directional Blocking Graph

slide-80
SLIDE 80

+x +y

Test Interlocking: Directional Blocking Graph

slide-81
SLIDE 81

+x +y

Test Interlocking: Directional Blocking Graph

slide-82
SLIDE 82

+x +y

Test Interlocking: Directional Blocking Graph

slide-83
SLIDE 83

G(+x, A)

+x +y

Test Interlocking: Directional Blocking Graph

Create a directional blocking graph for d = +x A

slide-84
SLIDE 84

G(+x, A)

+x +y

G(+y, A)

Test Interlocking: Directional Blocking Graph

Create a directional blocking graph for d = +y A

slide-85
SLIDE 85

G(+x, A)

+x +y

G(+y, A)

Test Interlocking: Directional Blocking Graph

The two graphs are called base directional blocking graphs of the assembly

slide-86
SLIDE 86

G(+x, A)

+x +y

G(+y, A)

Test Interlocking: Directional Blocking Graph

An assembly is interlocking if all base directional blocking graphs are

strongly connected except the key. The complexity of this testing approach is polynomial since finding all strongly connected components can be done in O(n2)

slide-87
SLIDE 87

Contribution #2: Design Interlocking

Make all graphs strongly connected Construct interlocking parts geometry

G(+x, A) G(+y, A)

+x +y

A

slide-88
SLIDE 88

Design Interlocking: Iterative Construction

R0

R R

G(+x, A0) G(+y, A0)

+x +y

Geometry Space Graph Space

slide-89
SLIDE 89

Design Interlocking: Iterative Construction

1 R R 1

G(+x, A1) G(+y, A1)

+x +y

Split nodes

R0

slide-90
SLIDE 90

Design Interlocking: Iterative Construction

1 R R 1

G(+x, A1) G(+y, A1)

+x +y

Graph Design

(make graphs strongly connected except the key)

R0

slide-91
SLIDE 91

Design Interlocking: Iterative Construction

P1 R1

1 R R 1

G(+x, A1) G(+y, A1)

+x +y

Graph Design

(make graphs strongly connected except the key)

Geometry Realization

(realize blocking relations in the graphs)

slide-92
SLIDE 92

Design Interlocking: Iterative Construction

P1 R1

1 R R 1

G(+x, A1) G(+y, A1)

+x +y

Graph Design Geometry Realization

slide-93
SLIDE 93

Design Interlocking: Iterative Construction

1 2 R 1

G(+x, A2) G(+y, A2)

2 R

+x +y

Graph Design Geometry Realization

P1 R1

slide-94
SLIDE 94

Design Interlocking: Iterative Construction

G(+x, A2) G(+y, A2) Graph Design Geometry Realization

1 2 R 1 2 R

+x +y

P1 R1

slide-95
SLIDE 95

Design Interlocking: Iterative Construction

P1 P2 R2

G(+x, A2) G(+y, A2)

+x +y

Graph Design Geometry Realization

1 2 R 1 2 R

slide-96
SLIDE 96

Design Interlocking: Iterative Construction

P1 P2 P3 R3

1 2 3 R 2 3 R 1

G(+x, A3) G(+y, A3)

+x +y

Graph Design Geometry Realization

slide-97
SLIDE 97

Design Interlocking: Iterative Construction

P5 P1 P2 P3 P4

1 2 3 4 5 1 2 3 4 5

G(+x, A4) G(+y, A4)

+x +y

Graph Design Geometry Realization

slide-98
SLIDE 98

Design Interlocking: Tree-traversal Search

Search space is explored in a tree traversal process with automatic backtracking

slide-99
SLIDE 99

Results: Interlocking Voxelized Structures

G(+x, A) G(+y, A) G(+z, A)

1 2 4 5 6 7 9 8 3 1 2 4 5 6 7 3 9 8 1 2 4 5 6 8 7 3 9

+x +y +z

9-part Interlocking Cube

slide-100
SLIDE 100

Results: Interlocking Voxelized Structures

14-part Interlocking Dog

G(+x, A) G(+y, A) G(+z, A)

+x +y +z

slide-101
SLIDE 101

Results: Interlocking Voxelized Structures

+x +y +z

14-part Interlocking Dog

slide-102
SLIDE 102

Results: Interlocking Voxelized Structures

Input model

1300-part Interlocking Cube

slide-103
SLIDE 103

Results: Interlocking Frame Structures

Voxel joints

slide-104
SLIDE 104

Results: Fabrication

Our designed Frame Chair

slide-105
SLIDE 105

Summary of the project

  • Make a connection between interlocking assemblies and a family of directional

blocking graphs

  • A graph-based method to test interlocking efficiently
  • A graph-based method to design interlocking assemblies
  • graph design + geometry realization

G(+x, A) G(+y, A)

+x +y

A

slide-106
SLIDE 106
  • Parts fabrication
  • Parts joining
  • Parts assembly
  • Parts packing
  • Structural Stability
  • Reconfigurability
  • Functionality

Outlook: Computational Design of Complex Assemblies

slide-107
SLIDE 107

More information can be found at https://sutd-cgl.github.io/

Thank You!