background preloader

Chad Vernon » Python Scripting for Maya Artists

Chad Vernon » Python Scripting for Maya Artists
This workshop is geared towards students with little to no scripting/programming experience. By the end of this workshop, you will have the knowledge to write and run Python scripts inside and outside of Maya. You will not learn everything about Python from this workshop. This workshop includes all the basic information you should know in order to be proficient in reading, writing, running, and modifying Python scripts. The purpose of this workshop is not to make you expert Python scripters, but to give you a solid foundation from which in further your Python studies. Learning Python, 3rd Edition by Mark Lutz Dive Into Python: The python_inside_maya Google email list: Some Programs that support Python: Maya Modo Houdini XSI Massive Blender Photoshop (indirectly) 3ds max (indirectly) What is Python used for? Artists can Automate repetitive and/or tedious tasks. Related:  Python + Maya

Spatial Simulation: Andrew F. Scott: Smooth_extrude.mel After the lecture in class on polygonal modeling and its use for tessellating surfaces and creating structural frameworks I decided to go home and do a little MEL scripting for Maya. I revisited a script created by Ming Tang call Super Extrude. It is used to generate a lattice forms from a polygonal model using the extrude commands. I decided to extend the script by unlocking the PolyPoke node and adding the duplicate feature to the script so that you retained a copy of your source geometry. In each of the examples above a simple cylinder was used as the base geometry. This script provides an excellent way to explore the parametric capabilities of Maya. a powerful tool for conceptual modeling in architectural visualization and spatial simulation.I look forward to developing more scripts that can be used to generate architectural models.

Python Scripting - Home Python script 01 – Renamer | fb-loop architecture I’ve been trying to learn scripting languages, Rhinoscript, Processing, MaxScript and etc. After researching and comparing several scripts, I came to the conclusion that Python is the way to go since it is widely adopted by many software, Blender, Houdini, Maya, Realflow and the next version of Rhino. Hopefuly, it will be adopted by Grasshopper soon. This is my first Python script. for example, component_01, component_02, component_03 and etc. reNamer = mc.promptDialog(title =’rename’, message=’New name of the selected object’, button=’OK’) if reNamer == ‘OK’: newName = mc.promptDialog(query=True, text=True) listK = selSize = len(listK) for i in range (0, selSize, 1): listK[i] ) if i<9: mc.rename( ‘%s_00%d’ %(newName, i+1) ) else: mc.rename( ‘%s_0%d’ %(newName, i+1) ) Like this: Like Loading...

Ming3D Particle Path Trace Here is ta MEL script you can trace the path of particles and create a curve in Maya. Attached file new animation script Here is the refined version of animation script for Maya 2011. MEL. Attached file move layout GH script allow user select a group objects and move them along X axis to create a layout. Attached file frame array GH script to generate a sequence of frames by slicing a solid mass in Rhino. Attached file Grasshopper: Planar Array here is the Grasshopper definition I wrote to generate a sequence of planar by slicing a mass into chips. Attached file duplicate with input node Here is the modified version of super duplicate with "special duplication" with input node and assign unique name to child nodes. Attached file distance generator Maya Mel script to generate distance channel between two objects. Attached file voxelizer Voxelizer 1.0 is a script written in Python for Maya. Developing website Weave pattern Attached file

Python Scripting - Maya Python Download: Available for free download here : Purpose: This node is the key module in maya rigging process. One node for the most of the rigging process. asNode is still going to include many general methods required for rigging / animation process. It played key role in hyper skinning system as shown in below video: asNode was developed with the inspiration from PyNode in PyMel, But with extended support to Rigging process. And this doesn't depend on PyNode in PyMel. Features: 1. 2. asNode was developed with the inspiration from PyNode in PyMel 3. 4. 5. 6. 7. 8. 9. Updates: 2014.09.08 -- Updated asNode.rar with help file on all methods by adding 'asNode.pypredef'. 2014.09.21 -- Test files are added in asNode.rar for asN.addChild, asN.mConstrain etc 2015.02.05 -- Auto completion methods will update and change according the selection type of object And added new example maya files Future Updates: or

Houdini Python Students Blobs in Maya – Jose's sketchbook For this post, I have been working on implementing isosurfaces as a modeling tool in Maya to create things such as the one depicted in the image below. Isosurfaces An isosurface is a shape which is described by taking a and building a surface from all the points on the field of which value matches a given threshold level we provide. To generate a polygonal surface we can use in computer graphics, our scalar field will be given by a 3D matrix -or grid- of numbers, which we will iterate in order to fetch the points that describe our shape. Fig 1. To build the surface from this discretized field, we generate triangles from each one of the cells conforming the grid by using the Marching Cubes algorithm. Maya Implementation This particular implementation I provide here is integrated with Maya as a Surface Plug-in. Optimization Fig 2. I started prototyping the plug-in using Maya Python, but it soon became too slow to be practical, and I had to switch to C++. Downloads

Wooden Trains (Tutorial) 2:14 PM - Dec 26, 2008 Download kit here: (3MB) This is the technical side of the wooden trains work that appears on the artwork page. I wanted to make the trains ride along the tracks and make the track layout fairly flexible. I also (despite working with Maya since 2001) hadn't really ever had the need of building a control window, so this was also an exercise in building a control panel. Icons need to be stored in This is a simple track layout. This is the actual train system. Each track piece consists of the geometry shape, two locators, and a NURBS curve. The locators have a string attribute added called "other track". The NURBS curve is the path that the train follows. Each train car is constrained to a locator for each axle of the train car. CurrTrack is deprecated from an earlier script, and I need to get rid of it. Rubik's Cube Texturing Tutorial 12:00 AM - Mar 15, 2008 This adds flexibility to the rig, as well.

mcneel/ghpython - GitHub Growing organic structures – Jose's sketchbook This project arose from a conversation with my friend Gino , who is currently working on Medical Visualization, about the difficulty for an artist to create growing structures such as veins -let alone animate them- and how to make them look organic, and therefore irregular and adapted to the surrounding they grow upon. The Problem I decided to tackle the problem, and the first approach that came to my mind were L-Systems , which have proven useful for modelling vegetation. We should be able to bind the growing of the structures to a surface, and therefore the growth needs to be . We need to be able to by specifying the areas the structure is allowed to occupy. Doing some research I ended up taking the approach described in the paper Modeling trees with a space colonization algorithm , listed in Algorithmic Botany , which perfectly suits the aforementioned requirements. Space Colonization Algorithm Implementation in Maya : implements the SCA algorithm. Directing the growth Download

Lsystems in Python The above information is giving us the outlines of a Python Lturtle class. We'd need a current state list, saved state, and rotation methods. The heading, up and left members of the state tuple are unit vectors. So we need a vector class -- something like this: from coords import Vector class Lturtle: stackstate = [] # remembers saved state delta = 0 # angle of rotation length = 0.5 # full length of turtle move thickness = 0.02 # default thickness of cylinder def __init__(self,vPos=Vector((0,0,0)), vH =Vector((0,0,1)), vL =Vector((0,1,0)), vU =Vector((1,0,0))): """The turtle will start at the origin with the Z-axis as forward direction and Y-axis as left direction. We also need a way to parse Lsystem files, meaning we iterate through a set of rules (e.g. substitions) a specified number of times, and feed the resulting string to the Lturtle as a series of commands e.g. More information on Lsystems: In the shoptalk of Lsystems, you start with axioms and rules of production. In Python:

GhPython | Food4Rhino For designers who want to use the same flexible language everywhere, GhPython is the Python interpreter component for Grasshopper that allows to execute dynamic scripts of any type. Unlike other scripting components, GhPython allows to use the rhinoscriptsyntax to start scripting without needing to be a programmer. Once on-board and with some practice, you can also get the most of external Python and .Net modules and libraries. This component is open-source, and works in Rhino 5. Join this group to receive updates of new versions, and visit the Grasshopper forum for support. To install: In Grasshopper, choose File > Special Folders > Components folder. Downloads: License: