Windows | CentOS/macOS | packages | |
---|---|---|---|
status |
The universal scripting environment with Python which Maya, Houdini and Unreal Engine.
DCC tool scripting is almost used Python, but these api isn't similarly anything. If you make lightweight tool, need to remember each application manners. Yurlungur is common interface which adapted each application for universal wrapper.
Yurlungur is inspired by PyMEL.
Yurlungur is pure Python and can be used synchronously in mixed Python2 and Python3 environments with RPC.
- Houdini Object Model like command wrapper.
- Qt for Python shorten accessor.
- Useful snippets for Game&VFX technical artist.
Node | Attribute | Sync | |
---|---|---|---|
Maya (2016~) | ○ | ○ | ○ |
Substance 3D Designer (2018.1.2~) | ○ | ○ | ☓ |
Houdini (16~) | ○ | ○ | ○ |
Blender (2.80~) | ○ | ○ | ○ |
Unreal (4.22~) | ○ | ○ | ☓ |
Nuke (10~) | ○ | ○ | ☓ |
DaVinci Resolve(&Fusion) (15~) | ○ | ○ | ☓ |
Cinema 4D (R21~) | ○ | ○ | ☓ |
3dsMax (2017~) | ○ | ○ | ○ |
Substance 3D Painter (2020~) | ☓ | ☓ | ○ |
Marmoset Toolbag (3~) | ○ | ○ | ☓ |
We also support Photoshop.
The following applications are being deprecated:
- Unity
- Modo
Some DCC applications that support Python, such as Substance3DPainter, MarmosetToolbag, and RenderDoc There are also applications that specialize in specific functions and require less scene graph manipulation.
A mechanism for pseudo-operation of the linked application from the host application can be created by using a This is achieved by combining standard formats such as FBX and USD, RPC, shared maps and clipboards.
The SDK can be used for vendor or proprietary applications, or for applications that are restricted by open source licenses and cannot embed the SDK in the application. Users do not need to be constrained by vendor, proprietary application, or open source license restrictions that prevent the SDK from being built into the application.
$ pip install yurlungur
If you use UE5 Editor or Standalone for full supports, Yurlungur recommend Qt for Python
module.
$ pip install PySide6
# Blender Python
import bpy
bpy.data.objects["foo"].bar = True
// Maya MEL
setAttr "foo.bar" true;
YNode behaves as a base class for the object.
# yurlungur
import yurlungur as yr
yr.Node("foo").bar.set(True)
Sample scripts can be found here.
lets see CONTRIBUTING.
Yurlungur is MIT License.