EuroPython 2016@Bilbao, Spain 2016/07/22 Takuro Wada 3D Modeling and Printing by Python
Kabuku Inc. (Japanese Startup) Software Engineer Providing services related to 3D printing Takuro Wada 和 田 拓 朗 taxpon taxpon http://takuro.ws Hi!
What is 3D printing?
Creating products by forming successive layers of material based on 3D Data What is 3D printing?
Example https://en.wikipedia.org/wiki/3D_printing
What is required for 3D Printing?
What is required for 3D printing? 3D Data 3D Printer
How to create 3D Data?
3D Data Example STL(ASCII)
Definition of Triangle (polygon)
Definition of Triangle (polygon) Successive triangle definitions
Format is so simple
But creating 3D Data from scratch is so hard task
3DCG/CAD software
Many 3D software provides Python API
Many 3D software provides Python API You can manipulate 3D data via Python
Script Modeling ‣ You can create 3D model even if you are not familiar with 3DCG/CAD software ‣ You can create shapes that are difficult for hand creation ‣ Modifying shape is easy
Script Modeling _人人人人人人人_ >FANTASTIC!!<  ̄Y^Y^Y^Y^Y^Y ̄ _人人人人人人人_ > GREAT!! <  ̄Y^Y^Y^Y^Y^Y ̄ ‣ You can create 3D model even if you are not familiar with 3DCG/CAD software ‣ You can create shapes that are difficult for hand creation ‣ Modifying shape is easy
Today’s software _人人人人人人人_ > FREE!! <  ̄Y^Y^Y^Y^Y^Y ̄
Script Modeling with Blender and Python
What is Blender? • Developed since 1995 • Open source software, Multi platform • Language: C, C++, Python ‣ Python is used as API interface ‣ Blender has its own python interpreter in the software(3.5.1 in Blender2.77a)asyncio!!
Delete default Object Add cone
-P option and script name to execute
Making Chain Project Making Chain https://flic.kr/p/aA2u7C CC BY-SA 2.0
https://www.myminifactory.com/object/5943
https://www.youtube.com/watch?v=z1OSXnCG-jk
http://afinia.com/3d-printers/h480/
15cm 15cm Afinia H480 Bed Size
Decided to create longer one jumping rope… Longer one … https://flic.kr/p/5pT9iD CC BY 2.0
Connect blender and minecraft world using Python
Convert this kind of 3D data to Minecraft Blocks!!
Implementation Overview Convert 3D model into Blocks Transport blocks into Minecraft Consists of two main pars. Converting Transporting
before Converting after
Level of Conversion
blender add-on Transporting Spigot mcpi plugin Raspberry Juice TCP • Spigot=Minecraft mod server • Raspberry Juice is plugin for Spigot • Use mcpi (python module for minecraft) module
_人人人人人人人人_ > Success!! <  ̄Y^Y^Y^Y^Y^Y^Y ̄ \(^o^)/
Floating Faces!!
You can live in your face!!
3D Printed Result
Github • b2mine ‣ https://github.com/taxpon/b2mine
Script Modeling with OpenSCAD and Python
What is OpenSCAD? • CAD software, Open source (GPL) • Multi platform(Win, Mac, Linux) • Implemented by C++(Qt) • Create 3D model using original programming language • No GUI to manipulate 3D data
Feature of OpenSCAD • Very good for Software Engineer • Written script can be kicked from command line ‣ Generate model in Server ‣ Create multiple model with command
Neck tie composed of multiple characters
Generate by 1 command ‣ You can pass arguments from command line to OpenSCAD script
OpenPySCAD • Generate OpenSCAD code from Python code ‣ https://github.com/taxpon/openpyscad • Install via pip command $ pip install openpyscad
OpenPySCAD • Union operation Cube([20, 10, 10]) + Cube([10, 20, 10]) union(){
 cube([20, 10, 10])
 cube([10, 20, 10])
 };
• Difference operation Cube([20, 10, 10]) - Cube([10, 20, 10]) difference(){
 cube([20, 10, 10])
 cube([10, 20, 10])
 }; OpenPySCAD
OpenPySCAD • Rotation c1 = Cube([20, 10, 10]) c1.rotate([0, 0, 45]) rotate([0, 0, 45]){
 cube([20, 10, 10])
 };
Conclusion
Script Modeling is FUN!! • Let's start tody Script Modeling is FUN!! Let’s start today https://flic.kr/p/ef4VBP CC BY 2.0
We are Hiring!! ‣ Python Developer ‣ C++ Developer ‣ Frontend Developer ‣ Angular/React ‣ You can use 3D printer ‣ International members ‣ 3 Google Developer Experts Engineer team http://www.kabuku.co.jp/#jobs

3D Modeling and Printing by Python