Inspired with the Chrysalis of 'Indian fritillary', set the spikes on the object.
Thursday, November 24, 2011
Monday, November 14, 2011
Colorize test.
Of course, I like 'only white' objects, but colorizing is a one of the options. Studying it is worthy for me.
[ Test 1. Simple coloring test ]
[ Test 2. Gradated coloring test ]
Wednesday, November 9, 2011
More control.
I add another parameter for side bending the body.
It's like an ancient life as 'Hallucigenia'.
Reference from wiki: http://goo.gl/QG7gI
It's like an ancient life as 'Hallucigenia'.
Reference from wiki: http://goo.gl/QG7gI
Sunday, November 6, 2011
GMP2
I met Dolf at Amsterdam, he is a really nice guy. I also saw his works at Affordable Art Fair, that was very cool. His works are Colored with 3D print.
So, I think next plans for GMP are these.
So, I think next plans for GMP are these.
- Asymmetric Shape
- Colored by vertex color
I tried (1.) with rotating the extruded face along z-axis. The result is this.
It's seems [weird] but dynamic shape.
Friday, October 21, 2011
Tuesday, October 18, 2011
55 objects!
Now, there are 55 3D printed objects on my table. So interesting. These objects were created from June, July, August, and September parameters. If I could make more interesting object from October parameters, I'll add some more.
Tuesday, October 11, 2011
Presentation!
I got an e-mail from Ton Roosendaal about coming Blender Conference 2011. I'll attend it. Ton said to me, show some my art works at the Conference. Well, this is a very good chance to show the GMP works in the world. Now my presentation is booked on Saturday 17:00, at the theater!
>Schedule of the theater.
Sunday, September 25, 2011
Composite Nodes
To make the non photorealistic images of catalog, I used the composite node of Blender.
Here is the node.
Here is the node.
Wednesday, September 21, 2011
Variations and Generations
I'm thinking how to control the object 'Generation'. In my system, I got 35 objects at once. (This number is not a limit, it's possible to make more at once, if I need.)
These models are the variations of shapes those are generated in almost same parameters at once. I think 'Generation' is 'Same body but change the position of parts). And I add a 'Generation' slider.
This parameter changes the place of parts, Legs, Arms, Horns, Spine by numeric formula.
This result is here.
These models are the variations of shapes those are generated in almost same parameters at once. I think 'Generation' is 'Same body but change the position of parts). And I add a 'Generation' slider.
This result is here.
New 3D printed Objects
Today, we are in a typhoon wind and rain now.
And I got new 3D printed object today, these are selected from the models of August.
Here is the photo.
And I got new 3D printed object today, these are selected from the models of August.
Here is the photo.
I recognized the power of 'Generative Modeling' again, it's interesting.
Sunday, September 11, 2011
Alien's era.
Maybe, the GMP is going on 'Alien's era'. So cute and strange objects are generated from yesterday. How do you think about these?
No limit?
Occasionally, there can be generated similar to the previous object as Dejabu. However, the forms emerge as never before to try to change the parameters a bit.
Sunday, September 4, 2011
Friday, September 2, 2011
Tuesday, August 23, 2011
Friday, August 19, 2011
A study for exhibition.
I saw a space for exhibition a few days ago. It's a room of a small company. I tried on a simulation for arrangement of works on Blender.
Tuesday, August 9, 2011
New script.
This is the another GMP script now.
It's not perfect yet, so hard to control to making shape. :-(
It's not perfect yet, so hard to control to making shape. :-(
The code is here.
3D print, more.
The other models were reached here, from the models of June. I'll make from July's models next time.
Friday, July 29, 2011
GMP_model_July
The models of July, movie from selected 113 generated objects.
Tuesday, July 19, 2011
I got some 3D printed objects, from the models of June.
The objects reached today, it's fantastic.
All babies are cute. I'm so satisfied.
All babies are cute. I'm so satisfied.
I'll select next objects to print, from June models. Of course, I'm making July's object now. I'll select from them next month.
Friday, July 15, 2011
Fixed the code, run on Blender 2.58.
I found the hint for solving the 'pivot_point' problem on the forum of BlenderArtists.org.
<CODE>
bpy.context.space_data.pivot_point = 'INDIVIDUAL_ORIGINS'
</CODE>
Now I could run the code on Blender 2.58 (^_^).
The code is here.
<CODE>
bpy.context.space_data.pivot_point = 'INDIVIDUAL_ORIGINS'
</CODE>
Now I could run the code on Blender 2.58 (^_^).
The code is here.
Almost good progress.
With Dolf's help, the code were written. I think it's a good result for now. But another problem came out.
From Blender 2.58, there are no option of 'active_space' attribute. This code uses the 'active_area' for changing the pivot_point to 'INDIVIDUALS' and 'BOUNDINGBOX_CENTER'. So, this code get 'ERROR' on Blender 2.58.
From Blender 2.58, there are no option of 'active_space' attribute. This code uses the 'active_area' for changing the pivot_point to 'INDIVIDUALS' and 'BOUNDINGBOX_CENTER'. So, this code get 'ERROR' on Blender 2.58.
The code is here.
Thursday, July 14, 2011
Start from here.
Well, let's start to try.
The image of use is,
1. Run this code - add 'Cube' at center automatically
2. Push 'Generate' button
3. Generate eight objects around the center cube
4. Select one from them
5. Do step (2.)
inside the code
1. Add one cube at center (0, 0, 0)
2. Set eight operations as function
3. Duplicate 'Cube', and do each operation
4. Select one object from new eight objects
5. If push 'Generate' button, delete unselected objects
6. Set the pos of selected object to center(0, 0, 0)
7. Set the name of this object to 'Cube'
8. Do step (3.) again
There are two problems now.
1. How to set the pos of selected object to center
The line 64,
<CODE>
bpy.ops.transform.translate(value=(0, 0, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=False)
</CODE>
is, translate the object relatively. So this value=(0, 0, 0) means [no move].
I need to set the pos absolutely (0, 0, 0).
2. How to set the name of the selected object arbitrary.
I have to select the object named 'Cube', but duplicated next generation object has 'Cube.00x'.
How about it?
The all code is here.
<CODE>
# First import bpy to get access to well... everything in blender
from bpy import *
import bpy
#import math, mathutils, random
class GMP_Panel(bpy.types.Panel):
bl_label = "Generative Modeling"
bl_space_type = "VIEW_3D"
bl_region_type = "TOOLS"
def draw(self, context):
layout = self.layout
scn = bpy.context.scene
row = layout.row()
row.operator( "bpt.generate_op" )
class GMP_Operator(bpy.types.Operator):
bl_idname = "bpt.generate_op"
bl_label = "Generate"
def execute(self, context):
# Do 8 operations
clearAndSetNewObj()
operation1()
operation2()
operation3()
operation4()
operation5()
operation6()
operation7()
operation8()
return {'FINISHED'}
def register():
bpy.utils.register_class( GMP_Operator )
bpy.utils.register_class( GMP_Panel )
def unregister():
bpy.utils.register_class( GMP_Operator )
bpy.utils.register_class( GMP_Panel )
# Add first cube
bpy.ops.mesh.primitive_cube_add(view_align=False, enter_editmode=False, location=(0, 0, 0), rotation=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.object.add_named(linked=False, name="NewOrigin")
# SubSurf and Apply
bpy.ops.object.modifier_add(type='SUBSURF')
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Subsurf")
# clearAndSetNewObj
def clearAndSetNewObj():
bpy.ops.object.select_inverse()
bpy.ops.object.delete()
bpy.ops.object.select_all(action='TOGGLE')
# Move Selected Object to Center(0, 0, 0) ------------------
bpy.ops.transform.translate(value=(0, 0, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=False)
# op.1
def operation1():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
ob = bpy.context.active_object
newGroup = ob.vertex_groups.new('vGroup')
bpy.ops.object.mode_set(mode='OBJECT')
# Lets loop through all the faces in the mesh
for f in ob.data.faces:
# See if the current face's centre is above 0.0 on the Z axis
if f.center[2] < -0.5:
# Set select to true
f.select = True
else:
f.select = False
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.object.vertex_group_set_active(group='vGroup')
bpy.ops.object.vertex_group_assign(new=False)
bpy.ops.object.mode_set(mode='OBJECT')
# op.2
def operation2():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
ob = bpy.context.active_object
newGroup = ob.vertex_groups.new('vGroup')
bpy.ops.object.mode_set(mode='OBJECT')
# Lets loop through all the faces in the mesh
for f in ob.data.faces:
# See if the current face's centre is above 0.0 on the Z axis
if (f.center[0] > 0.5 or f.center[0] < -0.5):
# Set select to true
f.select = True
else:
f.select = False
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.object.vertex_group_set_active(group='vGroup')
bpy.ops.object.vertex_group_assign(new=False)
bpy.ops.object.mode_set(mode='OBJECT')
# op.3
def operation3():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.4
def operation4():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.5
def operation5():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.6
def operation6():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.7
def operation7():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.8
def operation8():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
bpy.ops.object.modifier_add(type='SUBSURF')
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Subsurf")
if __name__ == '__main__':
register()
</CODE>
The image of use is,
1. Run this code - add 'Cube' at center automatically
2. Push 'Generate' button
3. Generate eight objects around the center cube
4. Select one from them
5. Do step (2.)
inside the code
1. Add one cube at center (0, 0, 0)
2. Set eight operations as function
3. Duplicate 'Cube', and do each operation
4. Select one object from new eight objects
5. If push 'Generate' button, delete unselected objects
6. Set the pos of selected object to center(0, 0, 0)
7. Set the name of this object to 'Cube'
8. Do step (3.) again
There are two problems now.
1. How to set the pos of selected object to center
The line 64,
<CODE>
bpy.ops.transform.translate(value=(0, 0, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=False)
</CODE>
is, translate the object relatively. So this value=(0, 0, 0) means [no move].
I need to set the pos absolutely (0, 0, 0).
2. How to set the name of the selected object arbitrary.
I have to select the object named 'Cube', but duplicated next generation object has 'Cube.00x'.
How about it?
The all code is here.
<CODE>
# First import bpy to get access to well... everything in blender
from bpy import *
import bpy
#import math, mathutils, random
class GMP_Panel(bpy.types.Panel):
bl_label = "Generative Modeling"
bl_space_type = "VIEW_3D"
bl_region_type = "TOOLS"
def draw(self, context):
layout = self.layout
scn = bpy.context.scene
row = layout.row()
row.operator( "bpt.generate_op" )
class GMP_Operator(bpy.types.Operator):
bl_idname = "bpt.generate_op"
bl_label = "Generate"
def execute(self, context):
# Do 8 operations
clearAndSetNewObj()
operation1()
operation2()
operation3()
operation4()
operation5()
operation6()
operation7()
operation8()
return {'FINISHED'}
def register():
bpy.utils.register_class( GMP_Operator )
bpy.utils.register_class( GMP_Panel )
def unregister():
bpy.utils.register_class( GMP_Operator )
bpy.utils.register_class( GMP_Panel )
# Add first cube
bpy.ops.mesh.primitive_cube_add(view_align=False, enter_editmode=False, location=(0, 0, 0), rotation=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.object.add_named(linked=False, name="NewOrigin")
# SubSurf and Apply
bpy.ops.object.modifier_add(type='SUBSURF')
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Subsurf")
# clearAndSetNewObj
def clearAndSetNewObj():
bpy.ops.object.select_inverse()
bpy.ops.object.delete()
bpy.ops.object.select_all(action='TOGGLE')
# Move Selected Object to Center(0, 0, 0) ------------------
bpy.ops.transform.translate(value=(0, 0, 0), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=False)
# op.1
def operation1():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
ob = bpy.context.active_object
newGroup = ob.vertex_groups.new('vGroup')
bpy.ops.object.mode_set(mode='OBJECT')
# Lets loop through all the faces in the mesh
for f in ob.data.faces:
# See if the current face's centre is above 0.0 on the Z axis
if f.center[2] < -0.5:
# Set select to true
f.select = True
else:
f.select = False
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.object.vertex_group_set_active(group='vGroup')
bpy.ops.object.vertex_group_assign(new=False)
bpy.ops.object.mode_set(mode='OBJECT')
# op.2
def operation2():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
ob = bpy.context.active_object
newGroup = ob.vertex_groups.new('vGroup')
bpy.ops.object.mode_set(mode='OBJECT')
# Lets loop through all the faces in the mesh
for f in ob.data.faces:
# See if the current face's centre is above 0.0 on the Z axis
if (f.center[0] > 0.5 or f.center[0] < -0.5):
# Set select to true
f.select = True
else:
f.select = False
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.object.vertex_group_set_active(group='vGroup')
bpy.ops.object.vertex_group_assign(new=False)
bpy.ops.object.mode_set(mode='OBJECT')
# op.3
def operation3():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, 5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.4
def operation4():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.5
def operation5():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, 0, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.6
def operation6():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(-5, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.7
def operation7():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(0, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
# op.8
def operation8():
bpy.ops.object.select_name(name="Cube", extend=False)
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(5, -5, 0), "constraint_axis":(False, False, False), "constraint_orientation":'GLOBAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "texture_space":False, "release_confirm":False})
bpy.ops.object.modifier_add(type='SUBSURF')
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Subsurf")
if __name__ == '__main__':
register()
</CODE>
Tuesday, July 12, 2011
New concept of GMP.
Until now, I feel the great ability of generative modeling, but also I know this code has one problem. That is, this code doesn't have 'Gene succession' system. This code could generate tons of shape variation by using many parameters, but each object has no relation each other. And now, I got an idea for new system.
As you know, 'image variation' on ADOBE Photoshop is easy color manipulation system.
As you know, 'image variation' on ADOBE Photoshop is easy color manipulation system.
The center is origin(now), and six color variations are around it. If any color variation are selected, this will be center=next origin(now). If GMP accept the system like this, the new concept is below.
The eight simple operations are around the origin (Of cource, this is conceptual figure).
The center is simple object at first. Next, apply each operation for copied object. I'll get eight new shapes. Select no.'2' shape, this will be next original shape.
Next, apply each operation again. I'll get another new shape. The operation number that I selected is 'Gene' data. [2, 6, 5, 5, 8, 7, 1...]
So, I could trace the line of operations perfectly by this numbers.
This is next concept of GMP.
Thursday, July 7, 2011
Insect Form
This object is short body type, for making an insect type form. For making the short body, re-written the numeric formula of a part of body.
Selected 96 objects in June.
This movie is the selected 96 objects that was made in June. I'll make some real objects in these, maybe 10 or some. Already, I ordered 4 pieces of objects to 3D print factory.
Thursday, June 30, 2011
Legs, insect like.
I tried to make insect like objects. The part of body, this code couldn't make joints like an insect, so the body is curvy.
Saturday, June 25, 2011
Friday, June 24, 2011
2.58 python error.
The blender 2.58 released. New features, bug fixed, it's good. But for GMP, one problem I got.
The GMP code contains 'area.active_space.pivot_point= 'INDIVIDUAL_ORIGINS', but the information from change log,
bpy.types.Area
Removed
active_space
|o|, this is used for setting the pivot point to INDIVIDUAL_ORIGINS, it's very important part.
Please help someone. /(*_*)\
The GMP code contains 'area.active_space.pivot_point= 'INDIVIDUAL_ORIGINS', but the information from change log,
bpy.types.Area
Removed
active_space
|o|, this is used for setting the pivot point to INDIVIDUAL_ORIGINS, it's very important part.
Please help someone. /(*_*)\
Friday, June 17, 2011
How to show the objects...
I have a plan to hold an exhibition for GMP in a year. (or next spring)
How to show the objects, and I decide this style. It's a sample bottle for using biology or something. The concept is, 'discovered new life'.
How to show the objects, and I decide this style. It's a sample bottle for using biology or something. The concept is, 'discovered new life'.
Thursday, June 16, 2011
Latest code
The latest code is here.
For example, the each parameters are like this.
Please show the layer [1] and [11].
This code generate 35 objects at once, it'll take a little bit long time.
Push [Generate] Button and wait about 20 min.
Please show the layer [1] and [11].
This code generate 35 objects at once, it'll take a little bit long time.
Push [Generate] Button and wait about 20 min.
Body_Amp: 2.5
Body_ModAmp: 1.97
Arm_Len: 5
Phase: 0
Step: 54
Amp: 0.22
StepAngle: -2.46
Mod_Amp: 1.16
ModStep: 2.5
Joint: 0
Leg_Len: 6
Phase: 0
Step: 19
Amp: 0.3
StepAngle: -3.21
Mod_Amp: 0.34
ModStep: 1.18
Joint: 4
Horn_Len: 4
Phase: 0
Step: 60
Amp: 0.32
StepAngle: 1.41
Mod_Amp: 0.04
ModStep: 0.16
Joint: 0
Sunday, June 12, 2011
Thursday, June 9, 2011
3D printed! \(^_^)/
About two weeks ago, I ordered three generated objects to 3D print factory. Today, I got these. It's cute babies, so I'm very glad. The 2 of 3 are printed with nylon powder, and 1 is resin. This factory is in Japan, and little bit expensive. So I ordered another object to 'Shapeways' for compare the cost/performance. Maybe this one will reach more a few weeks later.
Subscribe to:
Posts (Atom)