Optima Interior -

# Parameters radius = 1.0 height = 0.3 segments = 64 # High resolution for smooth curvature

# Clear existing mesh objects bpy.ops.object.select_all(action='SELECT') bpy.ops.object.delete(use_global=False) optima interior

# Create a central top cap (to make solid, but we want open interior? # Actually to be "solid" we need closed mesh. Let's add a top cap with hole? No, solid piece. # We'll create a central upper surface with a pattern. # Parameters radius = 1

# Add subdivision surface for smooth organic interior look mod = obj.modifiers.new(name="Subdivision", type='SUBSURF') mod.levels = 2 mod.render_levels = 2 No, solid piece

# Add a material with a warm interior tone mat = bpy.data.materials.new(name="InteriorMaterial") mat.use_nodes = True nodes = mat.node_tree.nodes links = mat.node_tree.links nodes.clear() output = nodes.new(type='ShaderNodeOutputMaterial') principled = nodes.new(type='ShaderNodeBsdfPrincipled') principled.inputs['Base Color'].default_value = (0.8, 0.6, 0.4, 1.0) # warm wood/leather principled.inputs['Roughness'].default_value = 0.3 principled.inputs['Metallic'].default_value = 0.1 links.new(principled.outputs['BSDF'], output.inputs['Surface']) obj.data.materials.append(mat)

# Generate vertices for top and bottom rings verts_top = [] verts_bottom = [] for i in range(segments): angle = 2 * math.pi * i / segments x = radius * math.cos(angle) y = radius * math.sin(angle) # Top ring with gentle undulation (z varies with angle) z_top = height * (0.5 + 0.3 * math.sin(4 * angle)) # 4 lobes v_top = bm.verts.new((x, y, z_top)) verts_top.append(v_top) # Bottom ring (flat) v_bottom = bm.verts.new((x, y, -height/2)) verts_bottom.append(v_bottom)

# Create a bmesh to build geometry bm = bmesh.new()

Arrow Left Arrow Right
Slideshow Left Arrow Slideshow Right Arrow