SLIDE 1 PL Techniques for 3D Printing
Chandakana Nandi Dan Grossman Zachary Tatlock Anat Caspi
SLIDE 2 Compilers generate
SLIDE 3
SLIDE 4
SLIDE 5
SLIDE 6
SLIDE 7 Computerized Manufacturing
CNC
SLIDE 8 Computerized Manufacturing
CNC Robotic Assembly Mold Making
SLIDE 9
Computerized Manufacturing
SLIDE 10 Computerized Manufacturing
CAM Machine Instructions
SLIDE 11 Computerized Manufacturing
CAD CAM IR Machine Instructions
SLIDE 12 Computerized Manufacturing
Machine Instructions IR CAD CAM
SLIDE 13 CAD/CAM : Idea → Part
CAD CAM
SLIDE 14 CAD/CAM : Idea → Part
CAD CAM
Where is the PL theory?
- semantics
- equivalence
- refinement
- approximation
SLIDE 15 CAD/CAM : Idea → Part
CAD CAM
Where is the PL theory?
- semantics
- equivalence
- refinement
- approximation
Already worthy challenge, but recently…
SLIDE 16
Democratized Manufacturing
SLIDE 17
3DP: PL Opportunity
3D Printing Background Challenge: CAD Synthesis Challenge: Slicing Framework
SLIDE 20
CAD STL
Idea G-code
SLIDE 21
CAD STL
Idea Part
G-code
SLIDE 22
CAD STL
Idea Part
G-code
SLIDE 23
CAD STL G-code
Idea Part
iterate
SLIDE 24
3DP: PL Opportunity
3D Printing Background Challenge: CAD Synthesis Challenge: Slicing Framework
SLIDE 25
Challenge: CAD Synthesis
: CAD → STL : STL → G-code : G-code → Part
SLIDE 26
Challenge: CAD Synthesis
???
: Idea → CAD : CAD → STL : STL → G-code : G-code → Part
SLIDE 27 Today: Crowdsource Designs
: Internet → Idea → STL
SLIDE 28 Today: Crowdsource Designs
: Internet → Idea → STL
+ Easy
SLIDE 29 Today: Crowdsource Designs
: Internet → Idea → option STL
+ Easy
SLIDE 30 Today: Crowdsource Designs
: Internet → Idea → option STL
+ Easy
- Incomplete
- Hard to modify
SLIDE 31 Today: Crowdsource Designs
: Internet → Idea → option STL
Goal
For idea i, even when: ( , i) = None there often exists similar i’ such that: ( , i’) = Some s So: adapt “almost” design s to a design for i!
SLIDE 32 Example “Almost” Designs
Rotated Hex Hole Broken Chicken Legs
SLIDE 33
Inferring CAD to fix hex holder
SLIDE 34 Inferring CAD to fix hex holder
Bent wrench not seating parallel :(
SLIDE 35 Inferring CAD to fix hex holder
Bent wrench not seating parallel :( Simple mesh editing broke model.
SLIDE 36
Inferring CAD to fix hex holder
SLIDE 37 Inferring CAD to fix hex holder
Infer
(manual)
SLIDE 38 Inferring CAD to fix hex holder
Infer Tweak
(manual) (small)
SLIDE 39 Inferring CAD to fix hex holder
Infer Print Tweak
(manual) (small) (success)
SLIDE 40 Inferring CAD to fix chicken
Legs too thing => broke! Expanding leg in STL tedious.
SLIDE 41 Inferring CAD to fix chicken
Infer Print Tweak
(manual) (small) (success)
SLIDE 42 Challenge: CAD Synthesis
: Internet → Idea → CAD : CAD → STL : STL → G-code : G-code → Part
decompiler
SLIDE 43
3DP: PL Opportunity
3D Printing Background Challenge: CAD Synthesis Challenge: Slicing Framework
SLIDE 44 Exploring Slicing Strategies
Partitioning [Chopper 12] Curved Layer FDM [CAD 08] Parallelization Approx [Wireprint 14] Multi-material [OpenFab 13]
SLIDE 45 3DP Slicing Framework
Today: roll your own framework
Goal: LLVM / CIL for 3D Printing
Should enable exploring many new strategies:
- error compensation
- G-code synthesis with Z3
- parallelizing peepholes
- cross-part constraint
- …
SLIDE 46 3DP: PL Opportunity
Solid foundation:
- compiler theory
- fast solvers
- diverse synthesis
- num. methods
Goals:
- fab theory
- efficiency
- self-stabilize
- tools
SLIDE 47 Compilers generate
SLIDE 48 Compilers generate
PL folk can develop the tools to make it better.
SLIDE 49 Compilers generate
PL folk can develop the tools to make it better.
Thank You!