What is uPy?

uPy,extends the Python programming language to wrap common functions of the APIs of several computer graphics programs called hosts. 
With uPy, one can develop graphical user interfaces once and use them in any uPy wrapped host. Likewise, uPy-based plug-ins developed for any of these hosts are automatically usable in all hosts supported by uPy


Why should I use uPy?

A single script written in uPy enables Python code like autoFill and sophisticated uPy plugins like ePMV to automatically function inside of multiple hosting applications at once with no redundant coding effort.


uPy currently wraps C4DMayaBlenderPyQT, & Tkinter

How do I use uPy and how does it work?

Two files, a Modeling Helper and a User Interface Adaptor, exist for each hosting application.

The host(s) running a uPy script get recognized automatically at run-time to call the appropriate host function as shown below.
With uPy & hosts installed, making a GUI that builds a sphere with an interactive radius slider to automatically function in 5 hosts as shown above in the Sphere.py uPy script, requires only 54 lines of non-redundant code (including luxurious formatting & comments).


Can I extend uPy?

Yes. Developers are encouraged to wrap additional functions for each host (setting appropriately commented return values for functions unique to a particular host). We strongly encourage developers to use provided templates to wrap entirely new hosts as well.  Please visit the Developer page for more information and to get started.


How should I cite uPy?

Ludovic Autin, Graham Johnson, Johan Hake, Arthur Olson, Michel Sanner, "uPy: A Ubiquitous CG Python API with Biological-Modeling Applications," IEEE Computer Graphics and Applications, vol. 32, no. 5, pp. 50-61, Sept.-Oct. 2012, doi:10.1109/MCG.2012.93. You can find the paper here at IEEE