SDK Guide for Newbies¶
Introduction¶
This guide intends to introduce Modo users to the SDK. Specifically to the Python API (but many of the concepts explained here are applicable to the C++ SDK).
It will try to avoid as many technical terms as possible, plus there will be links to the proper sections on this Wiki when need or deemed necessary.
What’s Modo?¶
Modo is a 3D Application for modelling,sculpting, painting, rigging, animation and rendering.
You can find more info in the [https://en.wikipedia.org/wiki/Modo_%28software%29 Wikipedia (English)] and in it’s own web page [http://www.thefoundry.co.uk/products/modo Modo] at [http://www.thefoundry.co.uk/ The Foundry] web page
What’s an SDK?¶
An SDK is a set of files written in any programming language that give access to control the host application, Modo in this case. <blockquote class=”toc”> <b>Note:</b> : Modo understands different languages. : New languages can be added by users with enough knowledge as described in the F.A.Q. questions: <blockquote> : [http://modo.sdk.thefoundry.co.uk/wiki/FAQ#Q:_Is_it_possible_to_create_SDK_wrappers_for_other_languages.3F 1.20 Is it possible to create SDK wrappers for other languages?] </blockquote> </blockquote>
SDK History¶
Modo SDK was introduced in stages starting in 301. And continued its expansion on the latests versions. And it will continue doing it so.
Scripting instead was introduced in Modo 101. In 701 a new [http://modo.sdk.thefoundry.co.uk/wiki/Category:Python_API Python API] was introduced that allowed a deeper access to the SDK similar to the C++ one.
In Modo 901, a new [http://modo.sdk.thefoundry.co.uk/td-sdk/index.html TD SDK] (an SDK for technical directors) was introduced allowing a more easy access to the Application_programming_interface introduced in 701.
Modo Speaks Many Languages¶
Modo can be accessed and controlled with several programming languages, each one offering different levels of access to modo internal mechanisms: <blockquote>
[http://modo.sdk.thefoundry.co.uk/wiki/SDK#Getting_Started C++] is the language that offers the deepest access to Modo.
[http://modo.sdk.thefoundry.co.uk/wiki/Perl Perl], [http://modo.sdk.thefoundry.co.uk/wiki/Lua Lua] and [http://modo.sdk.thefoundry.co.uk/wiki/Python Python] are scripting languages. Easier to learn and test that C++ specially for someone starting it’s journey to learn how to program for Modo.
Python is the language that provide better access to Modo after C++.
Modo access is really split in two: [http://modo.sdk.thefoundry.co.uk/wiki/Scripting Fire and Forget Scripts] and [http://modo.sdk.thefoundry.co.uk/wiki/SDK Plug-ins]. <blockquote class=”toc”> <b>Note:</b> : The new TD SDK is a set of classes written in Python and sit on top of the Python API. Don’t worry doesn’t hurt a bit! ;) </blockquote>
Fire And Forget Scripts¶
If you followed the previous link you know what they are.
The important thing to remember about them is: <blockquote>
They run once, they do their job and exit. That means you can’t control Modo interactively this way. Still allows for a lot of cool things.
There are three languages to write those: [http://modo.sdk.thefoundry.co.uk/wiki/Perl Perl], [http://modo.sdk.thefoundry.co.uk/wiki/Lua Lua] and [http://modo.sdk.thefoundry.co.uk/wiki/Python Python]. Pick your choice.
They executed slowly than a proper plug-in.
Only allows a limited access to Modo capabilities.
They are the easiest way to start programming in Modo.
Plug-ins API (C++ and Python)¶
This is what we will be talking in this guide.
The important thing to remember about them is: <blockquote>
There are two languages to write those: C++ and [http://modo.sdk.thefoundry.co.uk/wiki/Category:Python_API Python]. Pick your choice, but remember both use a common API but are different programming languages.
They executed faster than a fire and forget script or macro.
Allows almost full access to Modo capabilities. C++ access is superior.
They are the intermediate to advanced way to start programming in Modo.
TD SDK (901 and up)¶
This new TD SDK introduced for Technical Directors is a set of new classes that allows almost the same access than the Python API, but in an easier way. Think of it as a new grammar for the existing Python API.
Being introduced on 901 is still new, it has a nice [http://modo.sdk.thefoundry.co.uk/td-sdk/index.html documentation] and is being expanded as this guide is written.
What Can I Control In Modo?¶
Many things, but depends which route you try, either the fire and forget or the full API.
There is a nice description here: [http://www.thefoundry.co.uk/products/modo/developers/ Information for MODO developers].
Where I Can Find Samples?¶
In a few places.
<blockquote>
- Fire and Forget Scripts:
[http://modo.sdk.thefoundry.co.uk/wiki/Category:Script_Examples Script Examples]
- Plug-ins:
[http://modo.sdk.thefoundry.co.uk/td-sdk/examples.html TD SDK Examples]
[http://modo.sdk.thefoundry.co.uk/wiki/Category:API_Examples Python API_Examples]
[http://modo.sdk.thefoundry.co.uk/wiki/SDK#Tutorials C++ Examples And Tutorials]
I’m still lost, Where Can I Ask For Help¶
Fire and Forget scripts and questions can be found in the [http://community.thefoundry.co.uk/discussion/forum.aspx?f=119 Scripting & Macros] section of the forums.
Plug-ins (either in C++ or Python) examples and questions can be found in [http://community.thefoundry.co.uk/discussion/forum.aspx?f=37 SDK & Plug-in Development] section of the forums.
Where Can I Ask For Help From A Human Being?¶
There is a forum post: [http://community.thefoundry.co.uk/discussion/topic.aspx?f=37&t=68068 SDK Developers Channel [aka live Skype chat]] explaining how to access to the Skype channel for modo development. <blockquote class=”toc”> <b>Note:</b> : Be aware that we can not be sure the members of that chat are even human at all or connected 24h/365d! :P </blockquote>
What’s Next?¶
Now is time to start getting your hands dirty with Modo SDK and the Python API on the guide’s Python in Modo.