Friday, December 31, 2010

Happy New Year!

With this quick and short voxel animation greetings
I wish you happy and fun new year!

The script I wrote by the way to build and animate this voxels
I'll publish very soon (maybe tomorrow).


Tuesday, December 28, 2010

FBX batch exporter

The question (read here) is (quote): I need a script that will batch export a selection of objects in a scene as .FBX files named the same as they are in max and into the same folder as the max file.

...and here is my quick reply:
if maxFilePath != "" and selection.count > 0 do
savePath = maxFilePath
selObjs = getCurrentSelection()

for obj in selObjs do
select obj
FName = savePath + + ".fbx"
exportFile FName #noPrompt selectedOnly:true
...hope its useful. If you need to specifying FBX export settings, look into the MAXScript Reference for "FBX Export Dialog Access" topic.


Thursday, December 23, 2010

Merry holidays!

A lot of job come to my head for the Christmas holidays,
but I hope you celebrate twice as much in my stead :D

Merry Max'ing!

Design Christmas Balls

Modeling tutorial by Hani Mohammadi
on how to design christmas ball in Max.

Wednesday, December 22, 2010

Interactive Fracture System

Video tutorial by Tzahi (Isaac) Keshet.

Select objects with missing UV's

Prior to rendering or exporting to a game engine we need to see which objects will cause problems because of missing UV's. Louis Marcoux offer video tutorial on how to write script for that purpose.

Marcoux script (for explanation watch his tutorial):
for a in objects do
TotalUVNumVerts = 0
for b in 1 to (meshop.getNumMaps a.mesh) do
UVFound = try(meshop.getNumMapVerts a.mesh b)
catch(results = 0)
TotalUVNumVerts += UVFound
if (TotalUVNumVerts == 0) then selectmore a

Recently David Stokes share different approach which I like because it is more simple. He use node.mesh.numtverts test to collect objects with missing UV's.

Stokes script:

unmappedObjs = for obj in geometry where
obj.mesh.numtverts == 0 collect obj

I was afford to add an error check filtering improvements to his solution. So, because we call node.mesh (i.e. using TriMesh) we need to filter and exclude objects like particles, targetObject, ... we can filter the objects using getPolygonCount() function:
select (
for obj in geometry where
(getPolygonCount obj)[2] > 0 collect (
if obj.mesh.numtverts == 0 then obj
else dontCollect

...or filtered with canConvertTo() function:
select (
for obj in geometry where
canConvertTo obj TriMeshGeometry collect (
if obj.mesh.numtverts == 0 then obj
else dontCollect

Bake-A-pi - Pie Charts Maker

A new max script by Raphael "Insanto" Steves.
"Heres a tool to make your 3D PieCharts for you."
More at ScriptSpot.

Tuesday, December 21, 2010

Max Underground

Well, my blog is made for 3ds Max users and lovers so hardly ever this is a real news for them. is the most popular site for fresh Max news of the day, but if by chance you miss it then it's time to visit and add bookmark it.

3ds Max 20th Anniversary Show Reel

In honor of the 3ds max 20th anniversary Autodesk made assembly from it old show reel content from the last 20 years and put it into a single video.

Monday, December 20, 2010

Substances in Max 2011

Three tutorials by Louis Marcoux and Gary Davis cover the new Substance material maps added to Max 2011 Advantage Pack.

Batch namespacing

How to batch process (with script) by name (scene object, modifiers, materials, ...), seems that question appear frequently. Here is a few recent forum topics that can helps about --

eHow - How To is a how-to depository about everything.
To find 3dsmax subjects just use the site search form.

Control working pivot

How to control working pivot by script (coding tips).

Friday, December 17, 2010

Free PSD graphics is a nice resource site for free PSD graphics templates.Also some Photoshop tutorials listed out there.

How to make Santa in 3 Hours

Fast modeling video tutorial by Kostas Yiatilis MacFarlane.

Thursday, December 16, 2010

2D Tracking in 3ds Max

A tutorial by Fred Ruff on 2d tracking in 3ds Max using Camera Tracker.

Wednesday, December 15, 2010

Free music resources sheet

Large list of online places where you can get royalty-free music for audiovisual media production is posted on Vimeo forum.

Customizing 3ds Max Start Up Settings

Using a maxstart.max scene is old and well known tip. Fred Ruff just append a few tips to it bound up with VRay setup.

Monday, December 13, 2010

Piston animation

Luke Pettit wrote an excellent script that recreates the tutorial from Dario Strano.

Sunday, December 12, 2010

Texturing for dummies

Leigh van der Byl share 3 PDF tutorials for beginner texture artists on hers web site.

MaxSharp Project – using Python and C# with Max

Autodesk and Ephere have been co-developing an experimental library that provides a simplified wrapper around the 3DS Max 2011 API that can be used from both Python and C#. MaxSharp is a research project.

Looks like Autodesk would like to get feedback from users to see if there's enough demand to pursue further development, but actually the bad news is that the project is not an open, it's an in-door project for Sparks developers. So, how we can send some feedback?...
I appreciate all the efforts in this direction, and I hope they become aware and start an open beta projects.

More at Ken Pimentel's blog.

Saturday, December 11, 2010

How to pan while creating a spline

Nice tip by Ramy Hanna posted on his blog. As you create your spline, if you hit "i" (keyboard key) Max will just re-center your view to your cursor location.


Voxelizer is a script created to convert animated object into voxels.

Thursday, December 9, 2010

Model a Stylish Eames Lounge Chair

Detailed step-by-step modeling tutorial by Martin Zeme.

finalRender 3.5 and 3.5 SE

Cebas releases finalRender 3.5 and 3.5 SE.
New Features - 3D-Stereo Camera, Ultra-Fast GI Engine, and more.

Structure Synth 1.5

Structure Synth is a cross-platform application for generating 3D structures by specifying a design grammar. And it's a free!

Wednesday, December 8, 2010

Tuesday, December 7, 2010

Hotfix 4 for 3ds Max (Design) 2011

Hot Fix 4 (Published date: 2010-Dec-03) from Autodesk for Autodesk® 3ds Max® 2011 and Autodesk® 3ds Max® Design 2011 software includes fixes for issues with stability and performance. Specific areas addressed include: FileLink, Graphite Modeling Tools, Bitmap Proxies, Satellite Rendering, Normal Mapping, Quicksilver Hardware Renderer, and User Interface.

Moving a piston with math

Very interesting video tutorial by Dario Strano, showing how to rig the head motion of an engine piston using math equation.

V-Ray 2.0 for 3ds Max now available

Chaos Group introduce V-Ray 2.0 for 3ds Max, which is officially on the market starting 6th December 2010.V-Ray 2.0 for 3ds Max comes with V-Ray RT and V-Ray RT GPU included. Read more.

Monday, December 6, 2010

Anubis Scripts Downloader

My shared scripts online are not uploaded as single rar/zip package and this downloader is intended to simplify downloads task by grabbing all of them at once. All scripts saved in your local data 3dsmax\downloads\AnubisScripts folder. I hope you like it ;-)

Saturday, December 4, 2010

Custom Helix

How to create helix spline with custom amount of knots (via MAXScript) was asked here, and here is my snippet code --

spline = splineShape()

addNewSpline spline

addKnot spline 1 #smooth #curve [0,0,0]

numK = 12 -- num.knots

incr = pi -- increment

rad = for i = 1 to numK collect i * incr

ang = 30 -- angle

points = for i = 1 to numK collect


for p in points do addKnot spline 1 #smooth #curve p

updateShape spline

Shortly, in this example, 12 knots with angle 30 made full turn (12*30=360). So, what else... If you like some improvements like adding a height, then here is --

spline = splineShape()

addNewSpline spline

addKnot spline 1 #smooth #curve [0,0,0]

numK = 12 -- num.knots

incr = pi -- increment

rad = for i = 1 to numK collect i * incr

ang = 30 -- angle

h = 10 as float -- example height

step = h / numK

points = for i = 1 to numK collect


for p in points do addKnot spline 1 #smooth #curve p

updateShape spline

Thats it for now.

Brazil for Developers SDK

Caustic Graphics, developers of OpenRL and the CausticTwo graphics card, announced that the Brazil renderer has been rewritten from the ground up to take advantage of OpenRL (Open Ray tracing Library) for standardized access to graphics devices from AMD, Intel, and NVidia, as well as Caustic Graphics. They have posted a video showing the real-time, interactive rendering API designed for integration into 3D graphics applications.

The Brazil for Developers beta program begins in February 2011, but if we can see a Max plugin version of the interactive renderer will dependent of the results of this thread, and that sounds very very strange... Its a big mystery (for me), why Caustic Graphics has some doubts to produce Max plugin version. Also is a big mystery, how some forum thread will help them to make decision. So, lets hope this is only a trade trick and we'll enjoy BrazilRT for Max (some day).

Friday, December 3, 2010

I hit 6660 SS points

Ha-ha-ha... :P

Cut hole around vertex

This was asked here.
Execute the code line by line to see what each command does.

p = Plane isSelected:on
convertTo p Editable_Poly
max modify mode
subobjectlevel = 1
polyop.setVertSelection p #{7, 9, 13, 17, 19}
update p
polyop.setVertSelection p #{13}
update p
p.chamferVertices 4.0 open:true -- *note below
update p
subobjectlevel = 0
-- note: looks like 'open:true' in chamferVertices() is broken!
-- so... delete the face:

polyop.deleteFaces p #{21}

Thursday, December 2, 2010

Containers Techniques part 2

Chris Murray from Autodesk posted part 2 of his Containers Techniques video tutorial. Read posted feedback from the users as well.

Wednesday, December 1, 2010

Bake Transform 1.2

A quick update of my Bake Transform script, requested a few hours ago. The tool bake animation transform keys to chosen object with specified interval and sample frame step. Also reduce keys for chosen object with specified interval, sample frame step and threshold.

The new improvement is about script controlled objects. They often need view port update on each frame by moving the time slider. That of course slow down a bit baking process, so I add this as optional feature - to can turn it on only when this is necessary.

Monday, November 29, 2010

Script Password Protection

I spend a bit of time to wrote this script requested by Michele at ScriptSpot. I guess he need it to add license system to his scripts, nm, it is an open source, i.e. you can read the code and use it for free as you like it ;-)

Sculpting explosions with Thinking Particles

A video tutorial by Hristo Velev on how to sculpt explosions with Thinking Particles using external mesh to control particles speed.

Cabinet creator

Cabinet creator is a script that become very popular at ScriptSpot for a no time, and thats make me laugh :) Ok, am not want to be rude, but the folks which look for tools/plug-ins for whatsoever instead of learning how to do this with what they already have... am call them lazy slaves. Yes, the author of this script might deserve respect for the time he spend to wrote it, but ask yourself - are you need any tool or plugin to create a cabinet object in 3ds Max? This is a no time work if using Max's Doors and Windows primitives, and they are so intuitive so hardly ever necessary to read/watch any tutorials to work with them. Also Doors and Windows primitives has built-in mapping co-ordinates. Actually, the script use boolean operations, and that also is a quick task using boxes, but boolean ops break built-in mapping co-ordinates of the primitives. Also Max's Doors and Windows primitives are parametric objects (more flexible). So, if howsoever you need to own/write a Cabinet plug-in as parametric object take a look the excellent video tutorial by Borislav 'Bobo' Petrov. He guides you through the basics of scripted plug-in creation in 3ds Max, covering almost everything you need to know about to write nice scripted geometry plug-ins (incl. mapping, smoothing groups, segmentation, ...).

Sunday, November 28, 2010

Choose Renderer

Choose Renderer is one of my recent mini scripts. It give you a quick/lazy access to assign (production) renderer. Instead of pressing F10 and scroll down, this bean script will list all available renderers to choose from.

Friday, November 26, 2010

Mocapdata offers more than 4000 free motion data files, as well as paid content.

SplineSync demo videos

New test videos by Ian Clemmer shows possibilities of SplineSync and Superflow Elements scripts.

Tuesday, November 23, 2010

Containers benefits

A tutorial by Chris Murray from Autodesk on using containers to manage scene complexity.

Superflow Elements tutorial

New 40 minutes length tutorial released by Ian Clemmer on advanced techniques with Superflow Elements script, to create more rich motion graphics effects. The video show how to integrate the script with Particle Flow, plus some new tools in action which Ian added to the Superflow script recently.

Monday, November 22, 2010

Clone and Select

How to clone array of objects and select this new objects at the end? Shortly, this was the question on this forum topic. Yes, its a MaxScript topic. May looks simple, but there covered some basic and important things about array and mapped functions. While helping on Ian, I wrote by the way the script who asked for (get the script), but the info itself posted in the forum is more interesting/useful to the people going to learn MaxScript. Well, still not explain too much about the mapped functions, but hey, this is a quick help, not large essential book :) The difference between mapped and non-mapped functions is not just in their performance. Mapped functions are more faster but not applicable sometimes. After reading the forum topic, I hope the next short example can help to bring some idea about the mapped functions.

-- Lets say we have 3 objects with names A01, A02, A03.

-- And wish to make 2 instance clones on each of them.

select #($A01, $A02, $A03) -- select them

-- mapped instance copy:

for i = 1 to 2 do instance selection

-- iterated instance copy:

for obj in selection do

for i = 1 to 2 do instance obj

In the 1st case the A01 would have 2 instances: A04 and A07.
In the 2nd case the A01 would have 2 instances: A04 and A05.

Here is the result showed in table format (instances are sorted in columns):

Case 1:      Case 2:


A01 A02 A03 A01 A02 A03

A04 A05 A06 A04 A06 A08

A07 A08 A09 A05 A07 A09

As you see, the order of creation is different and that could affect on the rest
operations on this objects. Ok, that's it for now.

Sunday, November 21, 2010

Superflow Elements 1.1

Ian Clemmer released at ScriptSpot the Superflow Elements scripted tool, including new video tutorial.

Audioflow SplineSync 1.1

Ian Clemmer released at ScriptSpot the Audioflow SplineSync scripted tool, including new video tutorial.

Whether or not use Mipmapping?

Ok, no time right now to discuss this, its a long story and need to share my way to speed up rendering time (without sacrifice production quality). Shortly, Mipmaps are designed for real-time rendering and has many critical weaknesses that made them useless in production, even the good performance is not guaranteed. So, if you use Mental Ray renderer anyway, may try mipmappimg. I found a good tutorial by Adnan Hussain on how to setup your Mental Ray to work with Mipmaps, which include as well, how to convert your bitmaps to Mipmaps. You can find also additional reference links about on Hussain web site.

Friday, November 19, 2010

Audioflow SplineSync

Recently I become a part of Ian Clemmer V-MOTION team. First two scripts programmed by me for him are Superflow Elements and Audioflow SplineSync, and both are ready to be released.

Ian currently work on his new web site, but Audioflow SplineSync is already available for download at V-MOTION web site. All demos and tutorials are in progress too. Now you can watch two short videos he made with this script and upload on FaceBook (video 1, video 2).

Thursday, November 18, 2010

Remove vertices with 2 edges

Removing vertices that are shared by only 2 edges? As I see this question appear sequential. About two month ago I wrote a macro script (B-Vertex Eraser), also by user request, but recently asked my this again, so I'll post here (as reference) the last function I wrote for that purpose.
fn RemoveVertsWith2Edges epoly = (
    vList = for v=1 to epoly.GetNumVertices() where
    epoly.GetVertexEdgeCount v == 2 collect v
    epoly.SetSelection #Vertex (vList as BitArray)
    epoly.Remove selLevel:#Vertex

-- example usage:
RemoveVertsWith2Edges $
-- on multiple objects:
for obj in selection do RemoveVertsWith2Edges obj

This function work with Editable Poly and remove ALL vertices that are shared by only 2 edges. To remove SELECTED vertices with 2 edges, use my B-Vertex Eraser macro script, which works as with Editable Poly as with Edit Poly modifier.


Wednesday, November 17, 2010

Stretchy Bones Creator 2.1

A free script by Garrick Campsey for creating chains of stretchy bones and projecting them onto a mesh.

Tuesday, November 16, 2010

Pulldownit propagation tutorial

A video tutorial shows demolition setup with Pulldownit (dynamic solver) plugin using new "global/local propagation" properties (added to PDI 1.5). The feature looks promising. As I see, this upgrade is for PDI Pro version only.

Sunday, November 14, 2010

Scene Notes helper

Scripted helper plugin which hold your notes, and print 'active' notes to the Listener (when load the scene). For more details check at ScriptSpot.

Show Main Notes

This bean script just open notes from text file. When you open/load a scene file, it check for a text file with the same name at the same directory, and if found it, just open it in your default text editor (e.g. NotePad). For more details check at ScriptSpot.

Friday, November 12, 2010

Max 2011 quick tips & tricks

Four quick tips & tricks videos created by Chris Murray from Autodesk.

Work with INI files

Work with INI files (Read/Write) via MAXScript is the most easy job comparable to all other formats. Here is a new forum topic about. I trying to explain the work with INI`s as simple as possible. Hope its usefully anyway.

Tuesday, November 9, 2010

Detach All Faces

A MAXScript (posted here), which was asked here by Ian Clemmer.

If the title not say enough, well, this script detach all object`s faces to separate objects and automatize detach process on multiple objects.


Monday, November 8, 2010

Disable Ribbon in 3ds Max 2011?

Not everyone like the new Ribbon (added to Max 2011), and for my regret I can't delete it at all. I find only this modified UI, but am still not happy.

Saturday, November 6, 2010

Vue 9 Infinite

E-on Software release Vue 9 Infinite. New features and improvments in Vue 9.

Wiring Non Animatable Properties

Actually we can't wire (directly) non animatable properties to any controller/track, but if you interesting/involved in rigging, may find (I hope) some good tips in this forum thread on how to bind this properties to your rig attributes.

3D Process / Post Process

Ramy Hanna share his workflow post production process.

Thursday, November 4, 2010

Free online image vectorizer

Convert raster images like JPEGs, GIFs and PNGs to scalable vector graphics (EPS, SVG, and PDF) with this free online vectorizer.

Select Edges by lenght

Free scrited tool which allow to select edges wich is less, equal or grater than value that you want. Also, you can measure the lenght of single or multiple edges.

Wednesday, November 3, 2010

3D Studio MAX turns 20

3D Studio turned 20 years old last Sunday (October 31st). More information at Autodesk's 3DS Max 20th anniversary news section.