openfab a programmable pipline for multi-material fabrication kiril vidimce presented by: mira...

Download OpenFab A Programmable Pipline for Multi-Material Fabrication Kiril Vidimce Presented By: Mira Shalah Szu-Po Wang Jonathan Ragan-Kelley Wojciech Matusik

If you can't read please download the document

Upload: samuel-haddox

Post on 14-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1

Slide 2 OpenFab A Programmable Pipline for Multi-Material Fabrication Kiril Vidimce Presented By: Mira Shalah Szu-Po Wang Jonathan Ragan-Kelley Wojciech Matusik Computational Fabrication Group M I T 1 Slide 3 State of The Art of Multi-Material Fabrication 2 Slide 4 Multi-Material 3D Printers Object 260 Connex1Object 350 Connex3Object 1000 3 Slide 5 Large Build Volume 4 Slide 6 Multi-Material 3D Printers 5 Slide 7 Large Material Library 6 Slide 8 7 Slide 9 High-Resolution: 600 DPI 8 Slide 10 Current Industry Use 9 Slide 11 One Material Per Part 10 Slide 12 Why One Material Per Part? Traditional constraints of manufacturing. Poor specification methods. Lack of scalable software architectures. Expensive hardware and materials Limited material library No material design tools 11 Slide 13 Related Work Multiple materials are supported by statistically assigning a single material to each mesh Various companies have created proprietary formats to support their specific equipment Current open-source effort (e.g. RepRap, Fab@home) target FDM printing processes. The recent AMF standard allows description of object composition and color. Colors and materials can be specified with little proceduralism, using simple expressions from voxel coordinates to material choices. These have limited power and no architecture has been proposed to efficiently implement it. 12 Slide 14 Functionally Graded Material (FGM) Functionally graded materials are heterogeneous materials whose material composition varies over the volume of a given object. Prior work describes the difficulty of modelling FGM objects, and proposes a variety of volumetric representations based of tetrahedra and voxels [Jackson 2000]. MITs three-dimensional printing group describes a system that defines the material composition by a composition function [Liu et al. 2004; Zhou et al. 2004]. 13 Slide 15 Improve Specification Methods Functional Specification Spec2Fab Direct Specification OpenFab 14 Slide 16 Software Architecture Challenges Large high-resolution prints comprise trillions of voxels. Giga voxels/inch 3, Tera voxels/foot 3 Continuous gradation between materials Reusable material definitions Resolution and printer independence 15 Slide 17 OpenFab First Programmable and Scalable Fabrication Pipeline 16 Slide 18 OpenFab Inspired by rendering pipelines Fixed stages and programmable stages Procedural surface and material definitions Resolution independence Streaming architecture Decouples material definition from geometry 17 Slide 19 Outline OpenFab programming model OpenFL and fablets Architecture Results 18 Slide 20 The OpenFab programming Model 19 Slide 21 The OpenFab Programming Model input tessellate surface stage voxelize volume stage dither output textures materials 20 Slide 22 Input input tessellate surface stage voxelize volume stage dither output textures materials 21 Slide 23 Fixed-Function Stages input tessellate surface stage voxelize volume stage dither output textures materials 22 Slide 24 Programmable Stages input tessellate surface stage voxelize volume stage dither output textures materials 23 Slide 25 External Resources input tessellate surface stage voxelize volume stage dither output textures materials 24 Slide 26 Output input tessellate surface stage voxelize volume stage dither output textures materials 25 Slide 27 input tessellate surface stage voxelize volume stage dither output Fab world, a scene graph-like description: Shapes (boundary representation) Shape priorities Fablets Resources Textures Materials 26 Slide 28 tessellate surface stage voxelize volume stage dither output input 27 Slide 29 tessellate surface stage voxelize volume stage dither output input 28 Slide 30 surface stage voxelize volume stage dither output input tessellate 29 Slide 31 surface stage voxelize volume stage dither output input tessellate 30 Slide 32 surface stage voxelize volume stage dither output input tessellate 31 Slide 33 surface stage voxelize volume stage dither output input tessellate 1 voxel 50% A 25% B 25% C 32 Slide 34 surface stage voxelize volume stage dither output input tessellate 4 voxels BC A A 33 Slide 35 surface stage voxelize volume stage dither output input tessellate 34 Slide 36 OpenFL and Fablets 35 Slide 37 Programmable Stages input tessellate surface stage voxelize volume stage dither output textures materials fablets 36 Slide 38 OpenFL: Domain Specific Language C/C++-like programming language Built-in vector, matrix, texture, material types Modest OO features Pointwise (kernel) programming model Includes a standard library of math functions Global queries Flexible toolset that supports many common material specification tasks. 37 Slide 39 OpenFL: Domain Specific Language When defining materials volumetrically, it is useful to be able to determine the distance of a given voxel to the nearest point on the surface. For example, when printing a textured object, we cannot simply assign colors to the outer layer of the surface. In order to achieve a particular color, reflectance, and scattering behavior, the printer needs to deposit a certain amount of layered material to achieve the desired appearance properties. 38 Slide 40 fablet MyFablet { @uniform Material red, blue, yellow; @surface() { return double3(0,0,0); // no displacement } @volume(@varying double3 voxelCenter) { MaterialComposition mc; const double layerThickness = 1; double dist = distance(); if (dist