SyPy: A Python API/SDK for SynthEyes

SynthEyes Pro includes an API* and SDK** package called SyPy ("sigh-pie") that enables you to write Python programs to control a SynthEyes application instance. You can write new user assistance tools, or integrate with 3rd party applications that also offer python capability, such as 3ds max, maya, Cinema 4D, Hiero, Shotgun, etc. You can use SyPy with user-interface packages such as PySide or PyQT, and write and debug code using your favorite Python IDE***.

SyPy uses an advanced "bring your own python" architecture. It is installed into the python of your choice and communicates with a SynthEyes application to do your bidding. Technically, this is a client-server architecture like a browser and web-server, or like an X11 application and its windowing server. The setup details are handled automatically within SyPy.

The SyPy architecture tremendously simplifies integrating SynthEyes with other applications, since SyPy effectively executes within the 3rd party application. In a typical integration of other software tools that don't use SyPy's approach, a custom communication channel must be set up, or two matching tools developed, one for each application, that share a file format—with substantial effort for each.

With SyPy, one python acts as if it is embedded in both applications. The programmer can easily access information from both SynthEyes and the 3rd party application, intermingling calls to the respective APIs. It's a very powerful approach.

SynthEyes Functionality Exposed by SyPy

SyPy offers extensive access to functionality within SynthEyes; including:

And of course all that functionality can be combined with the functionality inherent to python, including user interfaces built with Tkinter, PySide, PyQT, or other similar packages.

What Is Included?

The following items are included in SyPy:

Script programming requires a substantial degree of expertise and is not covered by our normal support. We can't debug your code nor write code for you. We reserve the right to charge an additional technical support fee to cover scripting.

Show Me Something!

Here's a small example that converts a camera track to an object track—a typical fix-it task. Notice the first line: it gives the title that this script appears under, on the SynthEyes Script menu.

# ; Quick convert camera-track to object-track import SyPy hlev = SyPy.SyLevel() hlev.OpenExisting() # Go to the solver panel and reset the camera hlev.SetRoom("Solver") bid = hlev.ActionID("Solve/Clear") hlev.Main().ByID(bid).ClickAndWait() # it's on the Summary panel # Start our undo block for low-level changes hlev.Begin() # Make a new moving object on the active camera mob = hlev.CreateNew("OBJ") # Move all the trackers to the new object cam = hlev.Active().cam # active cam for sure for t in cam.Trackers(): t.obj = mob # Make the camera disabled, and the new object active cam.mode = "Disabled" hlev.SetActive(mob) hlev.ReloadAll() hlev.Accept("Convert to moving object") # All done... could re-solve here if desired.

Frequently Asked Questions

Why isn't python "built in" to SynthEyes? Python is free open-source software with many different versions available. There's no reason for us to pick a particular one that might not fit your needs. You can download and use whichever python you prefer, including python from other applications or IDEs. Since you're writing python code against the SyPy API in any case, what we do behind the curtain is largely irrelevant, except that in this case, our approach is vastly more flexible and gives you great new possibilities.

What versions of Python are supported? We've run SyPy on python 2.6 and 2.7. There's a slightly different version, SyPy3, that runs on Python 3.7+/-.

How do I install SyPy into (the Python of) another application? SyPy is written in python; it is a standard python "package." To install it, just copy SyPy into the "site-packages" folder of the python installation that you want to run SyPy in. For example, for Cinema 4D, copy SyPy to C:\Program Files\MAXON\CINEMA 4D R12\resource\modules\python\res\Python.win64.framework\Lib\site-packages. Be sure to use SyPy3 for applications that use Python 3.

Can I use python on one computer to control SynthEyes on a different computer? No, that's neither possible nor permitted by the license.

Do you offer any languages other than python? We currently offer only a python version of the API/SDK, but the underlying technology is language-independent. An API and SDK for another language would require only porting the portion written in Python, which consists of rather shallow stubs.

Licensing

SyPy is offered in the Pro version only, solely for the purpose of enabling customers to enhance the user-interface and workflow of their tracking artists (not eliminate them!) by enabling better integration with the customer's own tools. The license agreement contains limitations on the usage of the scripting technologies; SyPy applications

Glossary

*: API stands for Application Programming Interface. The python programmer writes code that calls functions listed in the API. The calls are implemented by the SyPy SDK.

**: SDK stands for Software Development Kit. The SyPy SDK is a python package that contains the code required to actually perform the operations the programmer requests using the SyPy API.

***: IDE stands for Integrated Development Environment. An IDE allows you to edit and run your code within the same program, which typically offers python-specific features such as code coloring and code auto-completion operations.

SynthEyes easily is the best camera match mover and object tracker out there.

Matthew Merkovich

More Quotes