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>

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>

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].

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.