One of my early attempt in python programming (and Maya Plugin development) is Step Snap which to my surprises, the tools proliferate quickly among Indonesian animators. It is an amazing feeling to see your tools being used on another animation studio 6 years after its released.
My current team ask if I can make a new explanation video on how to use the tools since I've done some modification to it. Here is the latest explanation video.
I've added a couple of new features to the tools. First, I've added the reverse function where the animator able to reverse the step snap process which instead of going up the frame, its starting from the last frame to the earliest frame. This will allow the animator to set the snap position from the last selected frame (because sometimes the feet position on the last selected frame is much better).
Another features added is the channel selection where it allows the animators to choose from translate and rotation channel when snapping the feet. Sometimes animator only want to snap (bake) the translate without affecting the rotation or perhaps the translation is fine but they want to snap the rotation instead. This can be done easily by choosing the active channel box from the tools.
Andrew Willis
Model | Rig | Animate | Code
Tuesday, 29 October 2024
Thursday, 7 May 2015
Constellation Render 4.5
It has been 2 years passed since the first release of Constellation Render. There have been lots of changes has been made as CR itself now is in its 4th version (version 4.5). There are lots of new changes and new feature include server-less system, more informative controller, hailing system, checkpoint system, more supported renderer, and many more.
Server-less System
This is the most significant changes from the first version. Throughout the development, I realized that the system can be made without a dedicated server thus freeing one PC to be used as render client. This means each render client will be communicate to one another as a team to finish and manage the render job.
This system however still need some kind of data storing method to store the job queue. I decided to use MySQL database as it is de facto standard for database, easy to use, and able to handle multiple transaction at the same time. Previously we used .txt and SQlite database to handle the job queue but both have their own shortcoming when dealing with rapid application like CR.
Informative Controller
The new controller give you more control to manage your job and client. Everything is color coded and some other new features has been added as follow.
Priority System
The only thing that missing from the first version is the priority set for the job. This enable you to set the priority on each job so the render client will render higher priority job first. If there are identical priority, the system will render the one submitted first (hence the name queue).
Server-less System
This is the most significant changes from the first version. Throughout the development, I realized that the system can be made without a dedicated server thus freeing one PC to be used as render client. This means each render client will be communicate to one another as a team to finish and manage the render job.
![]() |
Server Base System |
![]() |
Server-less System |
This system however still need some kind of data storing method to store the job queue. I decided to use MySQL database as it is de facto standard for database, easy to use, and able to handle multiple transaction at the same time. Previously we used .txt and SQlite database to handle the job queue but both have their own shortcoming when dealing with rapid application like CR.
Informative Controller
New Controller Interface |
- Client control including Wake On Lan, Shut Down, and Restart to help you manage the client in the database.
- Clear stalled job to clear any job that stuck in client database.
- Reset job to re-render previously submitted job.
- Generate batch script to render each job manually.
- Job Block Progress to see the render progress on which block rendered by which computer.
- Average render time to see your per frame rendering time
- More job status including error report to warn you failed job.
The controller also able to run hailing system on which the detail will be discussed next.
Priority System
The only thing that missing from the first version is the priority set for the job. This enable you to set the priority on each job so the render client will render higher priority job first. If there are identical priority, the system will render the one submitted first (hence the name queue).
Hailing System
In addition to the all new system, I've implemented a way for each client to communicate each other called hailing system.
In every client they will open a port to receive a command. This allow each client to check each other whether they are stalled, error, or crashed. If the crashed client is rendering, the other client will pick up the job, mark the crashed client offline and run the crashed render job. This system was designed as a safety net as to not miss any job whenever a client crashed.
Each client will do the hailing before they render or you can run it in controller using UPDATE-HAIL button on the top right of the window.
Checkpoint System
New CR Renderer |
Working alongside hailing system is the checkpoint. This system able to check previously rendered frame and to pick up from the last rendered frame saving time by not re-rendering the rendered frames. However, should the entire frame has been rendered, the system will re-render everything just in case.This checkpoint system is very use-full whenever a client crashed mid-render (due to power outage or crash).
More Renderer Supported
Current CR support more maya native renderer and additional v-ray renderer. I have written the code to be modular and each renderer have their own script called render handler. If needed, we can write our own render handler to handle new renderer as long as the software support batch render.
Conclusion
CR has come a long way since its inception. I really hope that CR will grow more into a major render manager software. I'm planning to work on its online frameworks so CR can be deployed as satelite render farm.
Currently CR serve as main render manager on one amazing ambitious studio (happy to work with you guys). I will try to develop more feature into CR and if you are interested on CR or have any question, just let me know.
Cheers,
Willis
Saturday, 2 November 2013
CRM - Constellation Render Manager
I used to remember when me and my friends back in university, We have been faced with one huge stage during our last finals semester.
First one is the CRM server console which will distribute render job and control the which job run on which client. I've run the server for one month and it has shown a very robust reliability without the needs of restarting it.
Rendering!
Aside from the long rendering time we have to render farm our shot manually across the computer lab. We have to copy the project file, set the frame range manually, and batch render it on every computer which is obviously a very tedious task.
The solution turn out to be a render manager software which can help you handle and distribute render job across networked computer. However, render manager software can be very costly and I wonder if we can make one ourselves.
The answer came through after I work for 4 months in Jakarta. I saw our studio render manager was overloaded and after some thought, I decided to develop our own in-house render manager called Constellation Render Manager (CRM).
CRM consist of 4 core element. The server, client, submitter, and the controller. Each of this component will work individually on each computer but share one configuration and network in order to work.
CRM Server |
The next on is the client. The client shown here is specifically engineered to render job for Autodesk Maya. However, I saw that it can expanded to other software in the near future.
CRM Client |
Here is the CRM submitter engineered for built in Maya. We can decide how much frame each client will render in Block Divider section while you can cross check the Render Layer that is going to be submitted.
The last one and the most crucial part on every render manager is the controller to see the progress on each job, check client status, and to manipulate submitted job.
CRM Controller |
This simple render manager has been tested and used to render heavy scene file for the last one month in the studio I work now without significance issues. CRM has performed fast, simple, and reliable.
I will develop CRM more in the near future to be able to handle more software, more intelligence, and even more reliable.
Thank you for reading and I hope you have a nice day.
TaskMan - Job Management for Studio
It has been awhile since the last time I update my animation blog here so today I got some update and new things to share.
I'm currently working as Technical Animator / Artist in MNC Animation Jakarta responsible for developing pipeline software following my manager guideline, tools for the artists (animator, modeler, compositor, and VFX), and as supporting artist where needed (mostly in render).
The first day I arrived in MNC the Head Producer told me that he require a tools (preferably online) to monitor work progress both in-source and out-source. This tools will work as tool to help him make a decision on every project.
Answering to his challenge, I utilize PHP, MySQL, Javascript, and chrome HTML 5 to create a simple job tracking website. The TaskMan.
I tried to create this website to ease out the headache of tracking an asset or job manually during the production. Therefore, I've made the layout simple and put some small feature inside it.
The first one is the dashboard. Here everybody can see the status of all the project they currently working at while tracking a job they have been assigned to. Notice the big percentage on the center right side, its the amount of job percentage that has been assigned to you so as long as it show 100%, you are safe.
These are all the feature I've made to answer our Producer first challenge to avoid clutter in our studio production and to prepare ourselves when working with outsource studio. I really hope in the near future I can develop the website to be capable of handling more complex pipeline and integrate it to our production software.
I'm currently preparing another identical website to be used as trial so you can come and experience the website directly.
Thank you for reading and hope you have a nice day.
I'm currently working as Technical Animator / Artist in MNC Animation Jakarta responsible for developing pipeline software following my manager guideline, tools for the artists (animator, modeler, compositor, and VFX), and as supporting artist where needed (mostly in render).
The first day I arrived in MNC the Head Producer told me that he require a tools (preferably online) to monitor work progress both in-source and out-source. This tools will work as tool to help him make a decision on every project.
Answering to his challenge, I utilize PHP, MySQL, Javascript, and chrome HTML 5 to create a simple job tracking website. The TaskMan.
Login page of the Task Manager |
I tried to create this website to ease out the headache of tracking an asset or job manually during the production. Therefore, I've made the layout simple and put some small feature inside it.
The first one is the dashboard. Here everybody can see the status of all the project they currently working at while tracking a job they have been assigned to. Notice the big percentage on the center right side, its the amount of job percentage that has been assigned to you so as long as it show 100%, you are safe.
Dashboard of the TaskMan |
Task Manager |
Register Episode |
These are all the feature I've made to answer our Producer first challenge to avoid clutter in our studio production and to prepare ourselves when working with outsource studio. I really hope in the near future I can develop the website to be capable of handling more complex pipeline and integrate it to our production software.
I'm currently preparing another identical website to be used as trial so you can come and experience the website directly.
Thank you for reading and hope you have a nice day.
Friday, 3 August 2012
Autodesk Maya Python
I've been wiggling with python code for a year but only for this last 3 months I were able to actually implement the code within Maya. Below are some of the script that I have developed so far.
My firs trial is a Step Snap script which mainly used to plant the foot of the character by constraining it then key it within the selected timeline. This script used mainly within a shot that uses pre-animated walk-cycle where the character feet tend to slide away.
You can download the script here
The next one is a character synoptic (or a picker some may say). It helps the animator by giving a shortcut to the select character controller with customized UI which attached on Maya UI. This script is really useful especially when dealing with a scene containing massive controller in it.
My firs trial is a Step Snap script which mainly used to plant the foot of the character by constraining it then key it within the selected timeline. This script used mainly within a shot that uses pre-animated walk-cycle where the character feet tend to slide away.
You can download the script here
The next one is a character synoptic (or a picker some may say). It helps the animator by giving a shortcut to the select character controller with customized UI which attached on Maya UI. This script is really useful especially when dealing with a scene containing massive controller in it.
![]() |
Clara and Her Synoptic |
Sunday, 13 November 2011
Weight Lift
An exercise for a test that I did last 2 weeks for my employment in Infinite Studios.
UPDATE : I'm currently employed in Infinite Studios as Junior Animator.
Weight Lift from Andrew Willis on Vimeo.
Beluga Super Transporter
Subscribe to:
Posts (Atom)