Jiggle

My very first ever blender script - da da! Nah, not much but a starting point, something for me to focus on while learning Python and Blender scripting. As per the name the idea is to randomly jiggle the verts. This is just my first version so I put it here so you can flame it… or even offer crits/ suggestions. Eventually I twigged on to loading it into an edit window as alp-p is much quicker than menu selection in script win. Are there kb shortcuts for scripts?

I intend to extend it as I learn more Python so all suggestions welcome.

#!BPY

""" Registration info for Blender menus
Name: 'Jiggle'
Blender: 234
Group: 'Mesh'
Tooltip: 'Randomly jiggle selected vertices'
"""

# $Id: jiggle.py, v1.0 2004/10/13 13:10:00 dmoc Exp $
#
######################################################################
# Jiggle v1 for Blender
#
# Jiggles position of selected vertices by random amount
#
# (c) 2004 Derek O'Connell ([email protected])
# released under Blender Artistic License
#
######################################################################

import Blender
from Blender import NMesh, Window
from Blender.Draw import *
from Blender.BGL import *

from math import pi, sin, sqrt

from random import Random

def myRandom(d):
	r=Random()
	r.seed()
	return d*(r.random()-0.5)
	
def jiggle():
	"""Main function to jiggle vertice positions"""
	is_editmode = Window.EditMode()
	if is_editmode: Window.EditMode(0)
	#
	objects = Blender.Object.GetSelected() 
	m = NMesh.GetRaw(objects[0].data.name)
	#
	d=0.25
	for v in m.verts:
		if v.sel:
			m.verts[v.index].co[0] = v.co[0] + myRandom(d)
			m.verts[v.index].co[1] = v.co[1] + myRandom(d)
			m.verts[v.index].co[2] = v.co[2] + myRandom(d)
	#
	m.update(1)
	if is_editmode: Window.EditMode(1)
	Blender.Redraw()
	
jiggle()

Oh no! Look what you did to poor Suzanne: :frowning:

http://img.photobucket.com/albums/v332/R2Blend/OW.png

:smiley: Great script!

Funny pic! Thanks for trying the script.