Updated February 2, 2012
2 modo 601 Plug-in Development Kit for PC and Mac The modo 601 Plug-in Software Development Kit provides a set of Application Programming Interfaces (APIs) and numerous source code samples that enable developers to read and write modo 601 scene, image, and movie files, introduce new commands and item types into modo, as well as add plug-in scripting support (with an example Lua interpreter). The SDK is based on COM, with C++ wrappers for many of the published APIs, and is available for both Mac OS X and Windows 32 bit and 64 bit versions of modo 601. What you can do with the SDK Create new Component shaders (similar to the Skin Shader in modo 601) for use in the modo Shader Tree. Build procedural geometry Plug-ins that create geometry in modo parametrically, and also be converted to a mesh. Create your own Image monitors (similar to the Histogram image monitor in modo 601) that display specialized types of image analysis. Build new viewport Overlays (similar to the Safe Area overlay) in modo 601. Create new implicit surface items (similar to the Blob items in modo 601). Build new Deformers for use in modo. Create new Volume items (similar to the Ground Plane item) in modo 601. Develop procedural textures which can be used as keyframed, multi-channel textures in the modo Shader Tree. Create a custom script interpreter for Lua or other programming languages. Develop new tool Plug-ins to extend the modo tool set. Create new Channel modifiers that can be placed into the Schematic Viewport in modo. Build new Color Model Plug-ins that can enhance the Color Picker in modo. Create time-based Image items for use in modo You can create Loaders or Savers for scenes or images, and savers for movies.
3 Loaders implement a recognition method that scans the file to determine if it s of a known type, and a load method which allows the loader to import data from the file into an object (scene or image) provided by modo. Scene loaders can import vertices and polygons as dynamic or static (trisurf) meshes. Static meshes have lower memory requirements and therefore enable loading larger scenes. Additional API support is provided to access polygonal faces, subdivision surfaces, curves of various types, patches, and text polygons. Plug-ins can access user preference settings to control their behavior. You can also use modo forms to design your Plug-in s preferences panel user interface. Plug-ins can also be delivered as packages, using the new.lpk file format, which enables delivering a set of files as a ZIP archive, which includes a manifest index file that controls where each file in the package is installed, via drag-n-drop onto the application. Savers implement a verify method which can display information or warnings about the chosen file format, and a save method, which reads the state of a scene or image object and writes that to the file. With API calls to the SDK you can access any parameter known to modo about the scene. Surface normals are supported, both per-vertex and per-polygon. The file I/O support in the SDK provides automatic triangulation APIs for scene savers, so that models can be saved as triangles without first manually freezing the meshes. Developers have access to topology information (e.g., what edges are connected to a given edge). If a new image saver is registered, then that format will appear in the Save As dialog for saving renders. You can also define your own layered image saver. The modo renderer can generate a depth buffer and other effect buffers, which can be saved as an image or as part of a layered image.
4 What s included in the SDK Header files and source code to build the example plugins and the C++ wrappers. For Windows developers, project files for the SDK samples are provided for Microsoft Visual Studio 2010 and 2008. For Mac OS X developers, the SDK also provides an Xcode project file. Sample code and detailed documentation for LXO file importers and exporters. Scene Loaders and Savers for COLLADA Digital Asset Exchange (.DAE), Autodesk FBX (.FBX), Wavefront Object (.OBJ), and VideoScape (.GEO) files. HSV and Kelvin Color Model samples. Sample code for Component shaders. A cel edges Shader is included as a top level shader example, providing a wide range of controls over diffuse, specular and reflection bands plus the ability to Draw Edges in a separate material. A Skin material shader is provided, showing use of displacement. Additionally, sample halftone and hair material shaders are present. An implicit surface example is provided. A Volume item example that implements a Ground Plane Volume item is provided. The new Volume API uses two shaders; one for density and another one for volume attributes. Scene savers for HPGL Plotter (.plt) files. Sample tool Plug-ins include the Arc, Seashell, and Spikey tools. Image loaders and savers for Portable Network Graphics (.PNG) and simple raw (.RAW) files. Sample gear generator plug-in is provided with numerous option for gear spacing, spoke placement etc. In addition to the gear item, there s also are orb and gasket examples that show how to procedurally create simple shapes. Movie savers for Apple QuickTime (.MOV) and Windows Media (.WMV) files. A script interpreter for the Lua programming language. An example VertValue plugin command is included that reads and sets vertex map values. The Histogram is provided as a sample Image Monitor Plug-in. A sample deformer (morph deformer) is provided which provides some basic settings for deforming an item in various ways. The COLLADA, Wavefront Object, and PNG plug-ins all provide sample UI forms that appear in the Preferences window of modo after they are installed, this lets users pick how they want certain parameters to be handled by the plug-in. Many sample plug-ins are provided in C++, with liberal open source licensing that allows developers to use the code in their own applications and products.
5 Applications and Benefits Export data from modo into the rest of your pipeline or tool suite (e.g. game engine). Control how modo data looks to your application, for seamless downstream use in your asset pipeline. Dump the contents of an LXO file into human-readable form. Import data from another application into modo. Read a proprietary in-house format or tackle an industry-standard format. Copy the contents of one LXO to another, applying custom operations as needed. Introduce new procedural textures into modo like pudding or boiling mud. Add new Commands to modo that execute native C++based actions. Introduce new types of geometry into modo like nuts and bolts and screws. Create new tools for modo users that by provide new ways to create and edit geometry. Add new Replicator point generators to modo. For example you could create a condensation plug-in that places replicators as you d see on a sweating drinking glass. Design innovative new ways for users to pick colors in modo.