On-going personal RnD projects
Below you will find on-going RnD projects I have running on my free time. These are mostly born out of curiosity or simply wanting to push what I can do for my personal work. These are all WIP and as such not officially made public, please do not share this page !
avPipe is my full CG Pipeline toolkit. It is the result of over 6 years of iterations and has been used on every Maya project made at Tendril for the last 4 years. It is used daily by multiple artists and is designed to make the production of various types of projects more efficient and free the artists of tedious tasks.
This is a very large project with thousands of lines of Python code, C++ modules and others. Below is some info about some of the features, although going in depth would need its own website :)
The demo below is almost 3 years old but still a good example.
Here are a few key technical features :
- Fast multithreaded custom backend with a dedicated server written in GoLang.
- Nice and compact user interface. All the tools are unified in a small dockable dialog that makes the pipeline less confusing for new artists.
- Designed to feel simple but extremely flexible behind the scenes. The user gets a consitent user experience across every supported 3D package.
- The software agnostic core library allows for easy integration in 3D softwares. avPipe takes care of abstracting most of the common host software operations it relies on to simplify integration of even relatively complex features.
- Full Shot and Asset management, provided by an advanced procedural project hierarchy system that allows for complete control over a project structure, including versioning.
- Complete Publishing support, including shot and asset sanitation mechanisms, scene data extraction and database registration.
- Advanced "avPackage" system that allows to define dataflow from one artist task to the next. Leveraging the abstract API this allows to write Package code that is agnostic to the 3D software, and later on define the needed software specific operations, separating "Workflow" code from "Implementation" code logic.
- Highly extensible plugin system, allowing to add publishers, package types, asset types and more.
- Flexible App launcher with customizable plugins per project. This system includes Deadline support for smooth renderfarm software management. It also supports environment variables wildcards, cleanup, and tokens.
On top of this avPipe integrates by default support for avPackages types that allows smooth running animated productions, such as :
- Maya Animatable Assets : Rig publishing with sanitizers and hierarchy analysis tools for animation cache debugging.
- Generic Renderable Assets : Publishing of assets lookdev using a proprietary material library system based on the native DCC material I/O format and a custom implementation of MaterialX for shader and property assignments. UVs and custom attributes are exported as nicely formatted Alembics.
This also provides complete support for XGen with data localization per version publishing, reducing the possibility of lost work and file linking issues.
- Generic Cached Assets : Dynamic assets created from published Animatables and Renderables that are combined on-demand using custom Alembic layering code, that results in a single Alembic file containing the animation as well as UVs and attributes from the Renderable, making the asset easily usable in many 3D apps. This advanced avPackage type allows for simple and robust scene assembly workflows, including support for instancers, proxies and hair systems.
- Generic Camera : A simple but tried and tested Alembic camera publishing, with support for unit conversion between DCCs and automatic coordinate baking before export.
avGroom is a static baked groom deformer. It allows you to take a single static frame of a groom, and deform it on your animated characters at render-time ! It breaks you free of the hassle and poor performance of hair solutions when the time comes to assemble your shots. It will be released commercially at a later date. Here are a few key points about avGroom :
- Use the tool you like, export grooms from XGen or Houdini.
- Minimal file size, only a single frame of the groom required.
- Fast deformation, using minimal memory footprint and carefully tuned algorithms.
- Reliable, no more surprise hair flickering when animating grooms.
- Render Procedural, minimal extraction time, maximum efficiency.
- Fast IPR, thanks to the procedural system, IPR stays fast and responsive.
avGroom is implemented in two parts : The first is the Maya Plugin, that allows you to load grooms in your scene, and visualize them at excellent speed. The second is the Render Procedural for each supported render engine. The Render Procedural loads and deforms the groom directly inside of the render engine, entirely skipping the slow translations times that affect most hair solutions.
avPoly is a toy Lighting Software. It is based on USD and Hydra and as such is compatible with any Render Delegate that Hydra supports. While this is far from being usable, it is a fun project, at a cross roads between Katana and Houdini Solaris.
avPoly allows for procedural scene assembly by leveraging native USD Layering. With a complex graph evaluation system, interactivity is maintained very high as the minimal amount of data is edited when attributes changed.
It also provides a hybrid viewport/render-view that with a few toggles can be switched to a classic 3D viewport, or a familier render-view, or something in between.
avPoly is built on a custom C++ 3D framework that is also used in avGroom. This experimental framework has an easy to use and modern architecture, primitive types, simple OpenGL rendering, an extensible Node Graph system and more.