3D Printing, Customization, and Product Lines

Preview:

DESCRIPTION

3D printing is gaining more and more momentum to build customized product in a wide variety of fields. We con- duct an exploratory study of Thingiverse, the most popular Website for sharing user-created 3D design les, in order to establish a possible connection with software product line (SPL) engineering. We report on the socio-technical aspects and current practices for modeling variability, implementing variability, confi guring and deriving products, and reusing artefacts. We provide hints that SPL-alike techniques are practically used in 3D printing and thus relevant. Finally, we discuss why the customization in the 3D printing eld represents a challenging playground for SPL engineering.

Citation preview

Customiza*on  and  3D  Prin*ng    

A  Challenging  Playground  for    So3ware  Product  Lines  

 

Mathieu  Acher,  Benoit  Baudry,    Olivier  Barais,  Jean-­‐Marc  Jézéquel  

3D  Print  your  3D  Printer  

Puppets  

5  

6  

7  

9  

So7ware  product  line  (SPL)  perspec*ve  

3D  PrinIng  is  gaining  momentum  – CustomizaIon  also  

•  SPL?  Variability?  •  «  the  ability  of  a  so3ware  system  or  arIfact  to  be  efficiently  extended,  changed,  customized  or  configured  for  use  in  a  parIcular  context  »  

•  Can  SPL  engineering  learn  from  3D  prin*ng?  •  Can  3D  prin*ng  benefit  from  SPL  engineering?  

10  

Field/ethnographic  study    

We  observed  how  a  community  of  people  (i.e,  the  Thingiverse  community)  interacts  and  collaborates  for  achieving  a  technical  work  (i.e.,  customizing  and  producing  3D  models)  

11  

Playground  

12  

13  

No  need  to  hide,    there  is  an  “open”  access  to  data  

14  

Analysis  of  Thingiverse  

15  

16  

17  

18  

19  

.scad

20  

Documenta*on    (hLp://customizer.makerbot.com/docs)  

21  

22  Variability Modeling Variability Implementation

Configuration Reuse

We  observed  how  a  community  of  people  (i.e,  the  Thingiverse  community)  interacts  and  collaborates  for  achieving  a  technical  work  (i.e.,  customizing  and  producing  3D  models)    

Preconcep*on:  product  line  perspec*ve  

23  

24  

25  

Conditional statements hell

26  

33 imbrications “else” not necessarily here

27  

Configuration

Clone and Own

28  

Reuse

Key  Results  (1)  

•  Variability  Modeling  and  ConfiguraIon  – Variability  concepts  are  here    – No  constraints  – ConfiguraIon  

•  Configurator  •  Visibility  /  SeparaIon  of  Concerns  •  Many  configuraIon  issues  

– Huge  complexity    •  38  parameters,  8  tabs,  10^28  configuraIons  

29  

Key  Results  (2)  

•  ImplementaIon  – Parameterized  Procedures  – CondiIonal  Statements  

•  33  imbricaIons  – pre-­‐compiled  datastructures    

•  themselves  parameterizable  

•  DerivaIon  – You  can  visualize  your  result  before  prinIng  

•  Limited  reuse  mechanism  

30  

So  What?  

•  Will  So3ware  Product  Line  Engineering  save  the  world?  

•  Can  help,  can  learn  

•  Challenges  ahead  

31  

Capture  Specific  Things  

•  Physical  properIes  – Are  we  even  able  to  print  the  3D  product  

•  Specific  to  the  product  – knowledge  out  there  

•  So3ware  level  

32  

Complexity  and  Cogni*ve  Effort  

•  Keeping  a  low  cogniIve  effort  – Not  necessarily  so3ware  developers  

•   More  sophisIcated  techniques  induce  someImes  accidental  complexity  

33  

Cost-­‐benefit  Tradeoff  

•  Cost  of  applying  more  sophisIcated  techniques  versus  benefit  of  upfront  investment  

•  Pay  off  when?  – For  dozens  of  people  in  their  garage?  – For  millions  of  rich  people?  

34  

Challenging  Playground  

35  

Future  

•  Automated  techniques  to  support  large  scale,  more  comprehensive  analysis    – Beyond  an  exploratory  and  very  manual  analysis  

– We  have  an  infrastructure  to  mine  Things  and  analyze  .scad  files  

•  Adressing  the  challenges  •  Helping  a  community  like  Thingiverse  to  master  the  complexity  

36  

OpenJSCAD  

37  

Recommended