Industrial light & magic success story case study iv (python based company)
1. Be a great websites product design and online marketing expert.
Slide 1 of 31
.
Industrial Light &
Magic
Sting Chen (陈世欣 )
使用 Python 技术的成功案例之四
名媛荟网 MY1930. COM CTO
Twitter : @stingchen 博客: BOPOR.COM
2. Be a great websites product design and online marketing expert.
Slide 2 of 31
Agenda
• Story : Lucas 《 Star Wars 》
• ILM Introduction
• How to use Python in ILM
• Open Talk
3. Be a great websites product design and online marketing expert.
Slide 3 of 31
引子
4. Be a great websites product design and online marketing expert.
Slide 4 of 31
引子 乔治 . 卢卡斯 - 星球大战
• “ 电影史上的里程碑、本世纪最为重要的
文化事件之一。”其影响波及整个世界。
– 1977 《星球大战》 4 新希望 A new hope
– 1980 《星球大战》 5 帝国反击 The Empire Strikes back
– 1983 《星球大战》 6 绝地归来 Return Of The Jedi
– 1999 《星球大战》 1 魅影危机 The Phantom Menace
– 2002 《星球大战》 2 克隆人的进攻 Attack of the Clones
– 2005 《星球大战》 3 西斯的反击 Revenge of the Sith
5. Be a great websites product design and online marketing expert.
Slide 5 of 31
卢卡斯电影公司, “工业光魔”和“天行者音效”
• Lucas Film
– Industrial Light & Magic 工业光魔 http://
www.ilm.com/
– Skywalker Sound 天行者音效
– 电脑制作事业部 (PIXAR 卖给了乔布斯)
• 制定了工业标准
– ILM , THX , Dolby , Technicolor , Avid , HD ,
HiRes , MP3 , MP4 , NLE , Sony HDW……
• “ 工业光魔”和“天行者”
– 还制作了《侏罗纪公园》、《终结者》、《哈利波
特》、《变形金刚》、《珍珠港》、《阿凡达》
– 全世界顶级的电影特技和后期制作公司
6. Be a great websites product design and online marketing expert.
Slide 6 of 31
Industrial Light & Magic (ILM)
• Started in 1975 by filmmaker George Lucas, in
order to create the special effects for the original
Star Wars film.
• Since then, ILM has grown into a visual effects
powerhouse that has contributed not just to the
entire Star Wars series.
• Also to films as diverse as Forrest Gump,
Jurassic Park, Who Framed Roger Rabbit,
Raiders of the Lost Ark, and Terminator 2.
• ILM has won numerous Academy Awards for
Best Visual Effects, not to mention a string of
Clio awards for its work on television
advertisements.
7. Be a great websites product design and online marketing expert.
Slide 7 of 31
35 年 -15 个奥斯卡奖, 23 个科技奖, 275 部电
影
8. Be a great websites product design and online marketing expert.
Slide 8 of 31
各类奖项
9. Be a great websites product design and online marketing expert.
Slide 9 of 31
特效制作
• 《终结者》之前,你看见过一个“水银
人”在走、跑、打、斗吗?《侏罗纪公
园》之前,你看见过一群群活灵活现的恐
龙吗?《珍珠港》之前,你有幸骑在一颗
炸弹上从高空中落下、坠入航母的烟囱之
中爆炸引起熊熊大火吗?《变形金刚》之
前,你看见过阿帕奇直升飞机转瞬间变成
钢铁巨人把 M-1 坦克像臭虫一样一个个掐
扁吗……?
10. Be a great websites product design and online marketing expert.
Slide 10 of 31
Python binds all things together
• "Python plays a key role in our production
pipeline. Without it a project the size of
Star Wars: Episode II would have been
very difficult to pull off. From crowd
rendering to batch processing to
compositing, Python binds all things
together," said Tommy Burnette, Senior
Technical Director,
Industrial Light & Magic.
11. Be a great websites product design and online marketing expert.
Slide 11 of 31
Python is everywhere at ILM
• "Python is everywhere at ILM. It's used to
extend the capabilities of our applications,
as well as providing the glue between
them. Every CG image we create has
involved Python somewhere in the
process," said Philip Peterson, Principal
Engineer, Research & Development,
Industrial Light & Magic.
12. Be a great websites product design and online marketing expert.
Slide 12 of 31
Problem
• LM runs a batch processing environment
capable of modeling, rendering and compositing
tens of thousands of motion picture frames per
day.
• Thousands of machines running Linux, IRIX,
Compaq Tru64, OS X, Solaris, and Windows join
together to provide a production pipeline that is
used by approximately eight hundred users
daily, many of whom write or modify code that
controls every step of the production process.
• In this context, hundreds of commercial and in-
house software components are combined to
create and process each frame of computer-
generated or enhanced film.
13. Be a great websites product design and online marketing expert.
Slide 13 of 31
Requirement
• Making all this work, and keeping it
working, requires a certain degree of
technical wizardry, as well as a tool set
that is up to the task of integrating diverse
and frequently changing systems.
14. Be a great websites product design and online marketing expert.
Slide 14 of 31
1996 - Python version 1.4
• In 1996, The production pipeline was
controlled by Unix shell scripting.
• Python version 1.4 came out, and Python
was coming into its own as a powerful yet
simple language that could be used to
replace Unix shell scripting.
• Python was evaluated, compared to other
technologies available at the time (such as
Tcl and Perl), and chosen as an easier to
learn and use language with which to
incrementally replace older scripts.
15. Be a great websites product design and online marketing expert.
Slide 15 of 31
ILM integrated Python into custom applications written in C
or C++
• Python enabled much more for ILM than
just process control.
• Python can be embedded whole as a
scripting language within a larger software
system. In this case, Python code can
invoke specific functions of that system,
even if those functions are written in C or
C++. And C and C++ code can easily
make calls back into Python code as well.
16. Be a great websites product design and online marketing expert.
Slide 16 of 31
• ILM's in-house lighting tool
– It is the lighting tool that is ultimately
responsible for writing the 3D scene out to a
format that a renderer can interpret and
render.
– to place light sources into a 3D scene and to
facilitate the writing, generation, and
previewing of shaders and materials used on
CG elements.
17. Be a great websites product design and online marketing expert.
Slide 17 of 31
Many custom file formats and data structures, were re-
wrapped
• More and more components, such as those
responsible for ILM's many custom file formats
and data structures, were re-wrapped as Python
extension modules
• By writing in Python, users could recombine
wrapped software components and extend or
enhance standard CG applications needed for
each new image production run.
• This let ILM staff to do exactly what a production
needed at any given time, whether that meant
allowing for a specific look for an entire show, or
just a single CG character or element.
18. Be a great websites product design and online marketing expert.
Slide 18 of 31
Python for third applications
• The addition of Python scripting to Maya has
been a huge windfall here at ILM.
• We can now write applications that connect to
Maya and our proprietary software, and there
are incredible libraries of Python modules that
we can take advantage of.
• Through Python, we can connect Maya to our
asset management system and our production
databases, making for automatic updating of
characters and editorial changes.
19. Be a great websites product design and online marketing expert.
Slide 19 of 31
Easy to learn for non-technical users
• Even some of ILM's non-technical users
were able to learn enough Python to
develop simple plug-ins and to create and
modify production control scripts along
side the technical users.
20. Be a great websites product design and online marketing expert.
Slide 20 of 31
Python Unifies the Toolset
• Tracking and auditing functionality within
the production pipeline, where an Oracle
database keeps track of the hundreds of
thousands of images that are created and
processed for each film.
• DCOracle2, one of the Oracle integration
libraries available for Python, has
performed well in this task and is now in
use on Linux, IRIX, Tru64, and Solaris.
21. Be a great websites product design and online marketing expert.
Slide 21 of 31
Develop the CG artist's interface to ILM's asset
management system.
• Designed to be modular, this tool has
been enhanced by a large group of
developers and non-developers alike to
extend well beyond its original mandate.
• The application is now used not only to
manage CG assets and elements, but
also in daily shot review, as a network-
based whiteboard, as an instant
messenger, and even allows an
occasional game of chess.
22. Be a great websites product design and online marketing expert.
Slide 22 of 31
Python reduced the number of technologies
• Reduced the number of technologies that
needed to be deployed to ILM's thousands
of production computers.
– Shell scripting and batch control
– Embedded scripting
– Component software development
– Database application development
23. Be a great websites product design and online marketing expert.
Slide 23 of 31
Python simplified toolset
• Python's versatility ultimately simplified the
developers' toolset
• Simpler toolset translated directly into an
easier to manage and more reliable
development and production process.
24. Be a great websites product design and online marketing expert.
Slide 24 of 31
Hardware Costs Reduced
• Python's portability to many other operating
systems eventually became one of its key
strengths.
• Once Python was in use, it made the production
control system portable.
• This gave ILM additional freedom in making
hardware technology choices, including a large-
scale introduction of commodity PC hardware
and Linux, a move that has saved the company
substantial amounts of money in recent years.
25. Be a great websites product design and online marketing expert.
Slide 25 of 31
Source Code Access Important
• The availability of source code for the language
acts as an important insurance policy
– Custom extensions or improvements.
– After having used Python intensively for six years,
ILM has yet to run into significant bugs or portability
issues with the language.
– ILM installs new systems with newer versions of
Python but maintains older systems
– back-port some changes found in newer Python
versions, and to reimplement portions of newer
support libraries under older versions of Python.
– ILM is currently running a mix of Python 1.4, 1.5, and
2.1.
26. Be a great websites product design and online marketing expert.
Slide 26 of 31
More things about ILM
• Book 《 Industrial Light & Magic:
The Art of Special Effects 》
• Website
– www.ILM.com
27. Be a great websites product design and online marketing expert.
Slide 27 of 31
Open Talk
• Python 的潜力大家知道多少?
• 还有多少有趣的 Python 应用?
• 我们如何推广 Python 在更广领域?
28. Be a great websites product design and online marketing expert.
Slide 28 of 31
Questions?
Sting Chen (陈世欣 )
Twitter : @stingchen
新浪微博: @StingChen
Blog : BOPOR.COM
产品经理大会 PMCamp.Org
顶尖极客沙龙 TopGeek.Org
ThinkinLAMP 组织者之一