
lwsn Controller is a render farm controller that I developed using Python to provide a lot more flexibility than Layout provides. It features the ability to add or shut down render nodes without disturbing the other nodes still rendering. You can add or delete scenes to the controller while processing continues or even modify which frames to render. You can assign specific nodes to specific scenes and change assignments or use auto-assign during processing.
I call this beta software as it has only been tested by myself as yet although I have been using it with Lightwave 9.3, 9.5 and 9.6 and Vista 64-bit for several months without problems. That said, it is a work-in-progress and some features are incomplete; notably the estimated time to completion isn't right yet. I include an experimental screamer net remote starter that seems to work fine but hasn't been thoroughly tested.
This requires Python be installed on your computer and you must have a working screamernet setup. It was developed using Python 2.5 but 2.4 through 2.6 should also work. lwsn Controller is provided free to use and is open source. When you find a bug or want to make a suggestion please contact me but don't expect anything to happen very fast.
This
shows screen grabs of 4 nodes being added then 5 scenes added
(creatively named A, B, C, D and E). 3 of the nodes are set to
automatically assign themselves to the next available scene while one
node is specifically assigned the 2nd scene (B.lws in the example)
Scenes turn blue when they are finished. When nodes have no more scenes
to render they return to the node Bank.
Usage notes: configuration is manual file edit right now, the button isn't finished. The download contains 5 python files zipped. Extract the files into any convenient folder and double-click lwsnController_14.py to launch. 3 files -lwsnController_14.py, tooltip.py and lwsnController_config.py are required. lwsnController_config.py is the file you edit to setup paths to lwsn.exe and other stuff.
When you launch the controller two windows open; one is a python text window I use for debugging messages and the other is the user interface you see in the screen shots. The order you do things isn't important (at least that is one of my design goals) but a typical pattern is to set the number of nodes you have running or plan to run, press go to open the node interfaces. Add one or more scene files. Adjust the frames to render with the force frame or skip frame buttons. Then click auto assign on each of the nodes that are 'Ready' and rendering should start.
By the way, if you hover the mouse pointer over any of the count numbers for 'Done', 'Needed', 'Assignable', etc a tooltip pops up with a list of frame numbers for each. These are helpful when using the force or skip frame buttons.
Each node has a specific number. If you already have say node #3 running via a batch file as described in the Lightwave screamernet documentation and adopt nodes from #1 to #6 by pressing 'go', 6 node interfaces will open in the node bank and #3 will be adopted, reinitialized and become ready to be assigned to a scene. Nodes #1,2 4-6 will just sit there not having found active nodes. If you set things up right in the configuration file, each nodes start button can launch a local lwsn node.
The 2 optional and experimental files are lwsnServer.py and lwsnServer_config.py. These go on a remote machine (each machine would have to have Python installed). For each machine where lwsnServer.py is running the start button for each node can launch a remote lwsn node of your choosing. If that doesn't work for you let me know and otherwise start remote nodes with a batch file as described in the lightwave documentation.
This is a Lightwave layout plugin to move the selected objects along the world Y axis to the ground surface mesh you choose. I use it whenever the ground surface in my model is irregular like the real world and I have lots of trees or cars to position. It also can be used to set the y values of a camera or other object to skim over the irregular surface at a set offset distance. Tested with L6.5 through L9.6 - 32 bit only.
Original Features
Features added to Version 1.4
New Version 1.6
Usage
Notes: The ground surface to place the objects on must be triangulated.
Groups of objects can be organized into a hierarchy. Since nulls even
if selected wont be moved (by default), use them to organize your
parking lot or landscape planting. Grounding a full hierarchy of
objects (both parents and child object)s together with the Add random
heading option or the Rotate Pitch and bank option is unpredictable
because the parent would be rotated which would move the child.
Pre-select
your cars, trees, or whatever. Run Ground Those Objects. The list box
lets you choose your triangulated ground surface from all objects.
After running Ground Those Objects, each of the selected objects will
have been moved to have its Y value resting on the ground surface. Of
course if your object isn't over the ground it won't be moved
The random heading option does just that and makes identical trees look a little different from each other.
The rotate pitch and bank option adjusts pivot rotation to get the four wheels of a car to match the slope of the ground triangle it is over.
The include hierarchy below selected items option is for when you have more than a couple of hundred objects to select. Lightwave doesn't handle extremely large selections very quickly. This gets the items selected without Lightwave needing to highlight all their handles with openGL.
If you put a 10 in the start frame and a 40 in the end frame options, you will get 30 key frames set for each object.