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
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 
Variability Modeling Variability Implementation 
22 
Configuration Reuse
23
24
Conditional 
statements hell 
25
33 imbrications 
“else” not necessarily here 
26
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

3D Printing, Customization, and Product Lines

  • 1.
    Customiza*on and 3D Prin*ng A Challenging Playground for So3ware Product Lines Mathieu Acher, Benoit Baudry, Olivier Barais, Jean-­‐Marc Jézéquel
  • 4.
    3D Print your 3D Printer
  • 5.
  • 6.
  • 7.
  • 9.
  • 10.
    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
  • 11.
    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
  • 12.
  • 13.
  • 14.
    No need to hide, there is an “open” access to data 14
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    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 Variability Modeling Variability Implementation 22 Configuration Reuse
  • 23.
  • 24.
  • 25.
  • 26.
    33 imbrications “else”not necessarily here 26
  • 27.
  • 28.
  • 29.
    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
  • 30.
    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
  • 31.
    So What? •Will So3ware Product Line Engineering save the world? • Can help, can learn • Challenges ahead 31
  • 32.
    Capture Specific Things • Physical properIes – Are we even able to print the 3D product • Specific to the product – knowledge out there • So3ware level 32
  • 33.
    Complexity and Cogni*ve Effort • Keeping a low cogniIve effort – Not necessarily so3ware developers • More sophisIcated techniques induce someImes accidental complexity 33
  • 34.
    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
  • 35.
  • 36.
    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
  • 37.