technical architecture.

ServerUtilities v.85

by on Jun.23, 2009, under Batching, maxscript, vray

Its been a while since I’ve posted anything, so its time for the habitual blog sorry/script update!

We recently picked up VrayRT, and i found myself again vnc’ing over to farm machines to restart services and well, that just wont do!

So I did a small update to the ServerUtilities script adding a few services, and doing a little work on the underbelly of it to make it a bit more stable. also packaged it into an installer because I was getting a few people that had just installed it strangely and were having issues.

screenshot and download link

screenshot and download link

    — .65 – added vray 2010 to services
    — .75 – added vrayRT
    — .75 – convert to simpler dos prompt
    — .75 – added an optional pause to the end of the commandline based tools
    — .75 – fixed the invert button in server selection
    — .75 – prints the commandline to the listener
    — .80 – convert to dos based loop for multiple systems (if pause: hit enter to advance to next machine in loop..)
    — .85 – update to support spaces in the max file path! oops!

Download the Installer

5 Comments more...

by on Mar.16, 2009, under Batching, maxscript

Here’s partial results from last nights maxscript silliness.

QuickCollapse is a maxscript Struct with a few functions to speed up collapsing large numbers of objects, it provides feedback in the listener window so you can see progress as it goes.

Run script will trigger ‘CollapseSelected’ on your current selection. there isn’t much Error Checking involved, so filter your selection for meshes, and remeber that it SHUTS UNDO OFF for the collapse so that we dont have RAM overruns on large objectsets, so save/hold first eh?


EDIT 2013: Here’s an update with UI and a few other useful mesh cleanup functions: DOWNLOAD

17 Comments more...

Revit->FBX->Max, Collapsing large numbers of meshes

by on Mar.15, 2009, under Architecture, Batching, maxscript, Scripting, utility

Well, lets just say that dealing with large Revit files can get a little ugly for visualization purposes to say the least. there are several fundamental issues currently, ranging from workflows in building usable familys inside of revit, to dealing with the geometry after the fact for rendering.

I had the pleasure to again deal with a fairly large Revit model. It only weighed in at about 300mb to start! for working on final renderings thats all well and good, and not a real issue to deal with, but for mid project progress renders it can get a bit painful doing a lot of the deconstruction needed to make it useful to work in in 3dsMax. spending several hours ‘cleaning’ a revit model in max so that you can get any sort of rendering done is lets say, a bit depressing, when you know you’ll have to do the same process again in 2 weeks.

all that said, I started looking for some solutions to one small facet of the problem, and found some good case study testing on efficiently attaching a ton of meshes done by Dave Stewart and also a fair number of tips from the Maxscript crew at CGTalk

So I did a  small adaptation of Dave’s attachment script above, which can be found here: Its not pretty, but we’ll get there soon enough.

It takes your current selection, and simplifies the number of objects by the square root (Dave’s tested optimal amount for speed collapsing!) its a work in progress, and i figure i’ll take this, combined with set of other tools for collapsing either by Selected Material, Similar Objects+Instances, Layer, and some name filtering. that should take the day long revit cleanup jobs and compress them down to an hour or so.


2 Comments more...

Mass Exporting, again

by on Feb.24, 2009, under Batching, maxscript, utility

Mass exporting..

We have a fun little virtools app that loads in various NMO’s exported out from max on the fly as needed based on user input, so in the process of working out what our process would be, we came to the need to have each seperate 3dsmax hierarchy exported out into a seperate virtools NMO file.

Pretty simple, but the question came up on a forum today and its been a useful little script that I’ve been using for years now.

the guts are:

--wanky recursive function to parse hierarchy into an array
fn addChildrenToArray theChildren currentObjsToExport =
	for c in theChildren do
		append currentObjsToExport c
		addChildrenToArray c.children currentObjsToExport
fn massExportfn hier path filetype =
	exportSelection = selection as array
	if hier == true then
		baseNodesToExport = for o in exportSelection where o.parent == undefined collect o
	else baseNodesToExport = exportSelection
	--parse through said root nodes
	for o in baseNodesToExport do 
		oldPos = o.position
		o.position = [0,0,oldPos.z]
		--children returns a 'NodeChildrenArray, so convert that to an array manually.
		--include the current node in the array no matter what.
		currentObjsToExport = #(o)
		-- if we're packaging hierarchys then collect childrem
		if hier == true do
			addChildrenToArray o.children currentObjsToExport
		select currentObjsToExport		
		--random info for use to ogle at the export.. yea yea
		format "\tExport:\t%\tas\t%\n" filetype
		format "\tTo:\t%\n" (path + "/" + + filetype)
		format "\n-----------------------------\n\n"
		-- if we need to save selected use this export type
		if filetype == ".MAX" then
			savenodes currentObjsToExport (path + "/" + + filetype) quiet:true
			--export using the name of the root node as the filename
			exportfile (path + "/" + + filetype) #noPrompt selectedOnly:true 
		o.position = oldPos
	select exportSelection
-- and its used by:
massExportfn true "C:/temp/" ".vmo"

Theres an interface for it here, but i’ve got it built into many other small little pipeline specific utils, so that may not be of any real use to anyone else, but this little snip might be useful for someone out there.

Leave a Comment more...

When Sebbys Attack.

by on Feb.09, 2009, under Uncategorized


A shot from earlier today, I’m pretty sure there’s a few more solid ones in there, once I plow through the immense stack of fresh RAW photos clogging up my system.

On the plus side, after a few days of shooting i definitely have a much more solid grasp of ISO vs Aperture vs. Shutter, so I’m learning well why the first few days of shooting were horrifically grainy and blurry.

f5 to f11, ISO as low as it’ll go and still let me handhold the shutter speed!

Leave a Comment :, , more...

Code snippet site

by on Dec.15, 2008, under Uncategorized

Got them to add the maxscript language at the code snippet site 

a maxscript snippet:

Here’s the current list of posts tagged as maxscript, skimpy so far i know! 

the site gives us easy commenting, community editing, and an easier taggable search interface than the current state of things: cgtalk forums. I think to get wide adoption we might have to make a max or python based interface to make for easier posting/retrieval without having to use the web browser however!

We’ll see how much time i get to escape from the 4 infants to get that done ! (hah)

2 Comments :, more...

model test

by on Dec.10, 2008, under Uncategorized

Was playing around for a few minutes today with a studio setup of an old low poly model I had done for an interactive sales tool a while back. Liked the look 🙂

Leave a Comment more...

Maxscript: ServerUtilities v0.5 beta

by on Dec.07, 2008, under Admin, Batching, maxscript, utility, vray

This handles the services perfectly for me here, I’m doing a little more work on it to support using the server.exe and vrayspawner exe versions as well, but that wont be finished for a while as its a spare time project. I’m really looking for feedback in terms of platforms you’re looking to use it on, and what features would be nice to see in addition.

Click here to Download

Install is pretty straightforward, simply unzip into your Scripts directory.. after a bit more testing for various people I’ll throw together an installer, but for now its slightly manual.

after you unzip it, assuming your max is installed in say, C:\3dsmax08\ you should see several files

Maxscript files: Access them as Maxscript Pulldown, Run Script.
C:\3dsMax08\server_tool_lite_05.mcr — Run this to install the script into the Customize UI, under category dbScripts.
C:\3dsMax08\ServerUtilities\ — Run this to try out the tool without installing it into the Customize ui..

C:\3dsMax08\ServerUtilities\… There will be a few other exe’s in this directory, mostly commandline utilities that the script calls to batch modify things.

After you run the script the first time, it will create a file C:\3dsMax08\ServerUtilities\ServerToolLite.ini which will save your settings. In the script, it might be easier for you to add 1 server, and then browse to the ServerToolLite.ini file and manually add the other 19 servers in notepad.


2 Comments :, more...


by on Dec.05, 2008, under Portfolio, video

I was asked to build a few basic slideshow type animations to play in the background at a company event, which is all well and good, except “we dont want to spend any time on this, but can you make them look good?” Thanks!

So in comes a fun little toy of a site Animoto. You simply feed it a selection of images and a music track and it does a little magic in the background for you, and out comes a fun little ‘slideshow’ here’s a sample of one of the animations it outputs:

Nifty eh? If there was a way to feasibly add video clips in, and per slide titles, then this could be a pretty badass little toy to use as a baseline.

Leave a Comment :, , more...

need a couple testers for new ServerUtilities script

by on Dec.03, 2008, under maxscript

Looking for a couple testers to beat up on a maxscript for me before I send it out to the whole world.

drop a line to dbuchhofer {AT} gmail {DOT} com if you’ve got a moment to try it out. Things should run much smoother than the old HTA/VBScript nonsense.

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!