Ali Torabi

Digital Architecture & Technology

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

    Attractor 

    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)

    Rotating panels along the surface

    Rotating Panles

    Level: Advanced
    In This Video:

  • Use curve controller to change U & V offsets of a surface controller.
  • Using preview mode to handle large number of items in the array.
  • surfaceController takes following arguments:
    surface:surface name –Name of object in 3ds Max
    feedback:transform/position/rotation –function returns transform matrix, position in point3 value and rotation in EulerAngles value
    uOffset:offset value –Increase or decrease offset in U direction
    vOffset:offset value –Increase or decrease offset in V direction
    normalOffset:offset value –increase or decrease the normal offset
    mode:1 or 2 — set the controller in relative mode (2) or absolute mode (1)
    order: 1 to 9 — choose the order of rotation (items in drop down menu) works only when feedback is set to rotation
    data: 1 or 2 — use uv-mapping information (2) or NURBS evaluation functions (1)
    uv:1 or 2 — choose the uv direction.
    surfaceID: index number — identify the surface index when works with nurbs object or choose
    the UV mapping channel when working with mapping information

    , , , , , , , , ,
    April 22, 2010 at 4:16 pm Comments (4)

    Combine controllers inside your script

    Combine Controllers

    Level: Advanced
    In This Video:

  • Use curve controller to pass offset value to the surface controller.
  • Set the dim argument to apply the curve controller on a certain direction.
  • , , , , , , , , , , , , ,
    April 18, 2010 at 3:31 pm Comments (2)

    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)

    Parametric truss

    Parametric truss

    Level: Advanced
    In This Video:

  • Array between two spline using script controller.
  • Use conditional statements to change the index value.
  • Reference: curve controller function takes the following arguments:
    curve: object name –The name of object in 3ds Max
    dim: 1,2 or 3 — set the controller on specific dimension.
    feedback:transform/position/rotation –function returns transform matrix, position in point3 value and rotation in EulerAngles value
    localOffset: offset value — offset the index value and shifts item along the path.
    endOffset: offset value — move all items away from the last point of the path.
    startOffset: offset value — move all items away from the first point of the path
    mode : 1 or 2 — set the controller in absolute mode (1) or relative (2)
    order: 1 to 9 — choose the order of rotation (items in drop down menu) works only when feedback is set to rotation

    , , , , , , ,
    April 18, 2010 at 1:19 pm Comments (4)

    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)

    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