Ali Torabi

Digital Architecture & Technology

Introducing the Mix controller

Array on two curves
This video demonstrates use of MIX Controller in order to mix the effect of two independent curve controllers. Each of curve controllers is set to control the position of the box along a unique shape in two different dimensions. Incorporating both in one Mix controller approximate a surface which is result of translating one of the curves along the other one.
Mix controller settings

, , , , ,
August 22, 2011 at 1:16 am Comments (4)

Parametric array 2.1 has been released.

Bugs fixed:
  • Automatic garbage collection improved. This version is more stable on all versions of 3DS MAX
  • Nurbs selection in Surface controller.
  • Surface controller now return Utangent and Vtangent value of editable polys
  • Error in displaying Transform controller settings is fixed.
  • License control system improved.
  • Replacing the array members with a new object is possible via PICK OBJECT button from modify panel. PARA will search for possible transformation to apply on new object.
  • Multiple Variable Override controllers can be used inside one controller.
  • Magnet controller allows use of vector controller instead of magnet object.
  • Convert controller error fixed.
New items:
  • New Deform controller has been added to library.
  • Custom pattern tool has been added to SubObject controller.
  • Curve controller can now return the closest point of array to the curve
  • Property search box is added to the main interface.
  • Deselect button is added to the main interface.
  • A parametric array Layer is automatically being created to hold all the array nodes.
  • Random controller is now available for being used inside a condition controller. This controller can generate Boolean values randomly based on a percentage (chance value).
, ,
August 13, 2011 at 1:33 am Comments (0)

Parametric Array & L-System

Did you know that you can produce L-systems with parametric array!

Here is some experience with parametric array of a single line. I have used getItem function to access the parent node using the method below.

getItem index:[1+int((index1-2)/4),1,1]

Denominator (4) defines the number of branches per node. the script above returns the parent of the current object in L-system. Using this trick, you can adjust the start point of the line according to the end point of its parent. Of course the end point is just a transformation of the start point which defines the production rule of L-System. In new version of parametric array this will come as new controller and much more easy to implement on any type of object.

L-Systems in Parametric Array

Users can ask for sample scene!

, , , , , ,
June 19, 2010 at 12:14 pm Comments (7)

Animating parametric array

Level: Intermediate
In This Video:

  • Using time value to animate items in the array.
  • Offseting time value by adding index to it.
  • Use Trigonometric functions to distribute items in the array on an assuming surface.
  • , , , , , , , ,
    April 22, 2010 at 5:15 pm Comments (12)

    Parametric brick wall.


    Parametric stone wall

    Level: Advanced
    In This Video:

  • Positioning items based on other items location and dimensions.
  • Randomize function inside the script controller.
  • How to use getItem function to address a specific property of an item inside the array.
  • Note: the getItem function returns the value of specific property of the specific object inside the array.
    getItem index:[index1,index2,index3] prop:property

    , , , , , , , ,
    April 22, 2010 at 5:01 pm Comments (13)

    Circular pattern response to an attractor object


    Level: Advanced
    In This Video:

  • Use script controller to access objects properties outside of the array.
  • control the radius of cylinders in array according to their distance from a specific object.
  • How to use setTarget command Addressing properties of other objects from script controller.
  • Using getItem command the get the value of specific property of the current item.
  • Note1: setTarget function can return the value of the any propety of any object outside the array.
    setTarget object:object name prop:property name
    Note2: if you dont mention the index argument in getItem function it returns the value
    of the property for the current item in the array.
    getItem prop:property name

    , , , , , , ,
    April 22, 2010 at 4:55 pm Comments (25)

    Undulating brick wall

    Undulating brick wall

    Level: Advanced
    In This Video:

  • Use surface controller function inside your script.
  • set Feedback argument to rotation when you need to rotate objects according to the surface.
  • Push items in every other row by increasing index1 value.
  • , , , , , , , , ,
    April 18, 2010 at 2:39 pm Comments (18)

    Multi turn spiral stair, script controller

    Multi turn spiral

    Level: Advanced
    In This Video:

  • An example of using curve controller function inside the script controller.
  • Using script controller on transform property.
  • How to move items along two curves.
  • How to combine the position and rotation to get a transform matrix.
  • Set the array count to a consist value puts array into a loop.
  • , , , , , , , , ,
    April 18, 2010 at 12:19 pm Comments (0)

    Lineare controller inside script controller part 2

    Level: Advanced
    In This Video:

  • How to control items along one direction using linear controller in a multi-dimensional array.
  • Reference: linear controller function takes the following arguments
    i: index value — index of item in X direction
    j: index value — index of item in Y direction
    K: index value — index of item in Z direction
    dim: dimensions in point3 format — defines the directions that linear controller will be applied on.
    for example [1,0,0] means only in x direction ,[0,1,1] means in Y and Z.
    Note1: if you don’t pass the i,j or kargument to the function it considers the current item indexes by default.
    Note2: if you dont pass the dim argument to the function it considers all directions by default.

    , , , ,
    April 18, 2010 at 10:14 am Comments (0)

    Linear transformation function and script controller

    Dynamic checker pattern

    Level: Advanced
    In This Video:

  • using linear controller inside the script controller.
  • use conditional statement to set index value.
  • set index1 if index2 is even number (running bond pattern).
  • use i argument in linearcontroller function to change the current index.
  • , , , , , , , ,
    April 18, 2010 at 10:04 am Comments (2)

    « Older Posts