Optima Interior Apr 2026

# Write bmesh to mesh bm.to_mesh(mesh) bm.free()

# 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.

print("Generated 'Optima Interior' solid piece mesh.") This model forms a single closed mesh with a gently lobed upper surface, a flat base, and smooth subdivision-ready geometry. It is designed as a unified object suitable for rendering, 3D printing, or further sculpting of an organic interior volume.

import bpy import bmesh import math from mathutils import Vector optima interior

# Select bottom ring edges and extrude down bottom_edges = [e for e in bm.edges if any(v in verts_bottom for v in e.verts) and e.is_boundary] # Simpler: extrude the bottom face region downwards. # First, select all bottom faces (the fan we created) bottom_faces = [f for f in bm.faces if all(v.co.z < -height/2 + 0.01 for v in f.verts)] if bottom_faces: geom = bottom_faces[:] ret = bmesh.ops.extrude_discrete_faces(bm, faces=bottom_faces) extrude_verts = [v for v in ret['verts'] if v.co.z < 0] # Move extruded vertices down for v in extrude_verts: v.co.z -= 0.2 # Create side walls for extrusion (need to fill quads). But this gets messy. # Given complexity, let's simplify: just keep the original closed mesh without extrusion, # as it is already a solid closed manifold (if bottom cap and top cap are present).

# Create central disc on bottom (optional, but helps solidity) # Actually we will fill bottom with a fan bm.faces.new(verts_bottom) # Fan fill works if verts are in order

# Create a new mesh datablock and object mesh = bpy.data.meshes.new("OptimaInterior") obj = bpy.data.objects.new("OptimaInterior", mesh) bpy.context.collection.objects.link(obj) bpy.context.view_layer.objects.active = obj obj.select_set(True) # Write bmesh to mesh bm

# Recalculate normals outward bmesh.ops.recalc_face_normals(bm, faces=bm.faces)

# Create faces between top and bottom rings for i in range(segments): i_next = (i + 1) % segments # Quad between top and bottom bm.faces.new((verts_top[i], verts_top[i_next], verts_bottom[i_next], verts_bottom[i]))

# Parameters radius = 1.0 height = 0.3 segments = 64 # High resolution for smooth curvature No, solid piece

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

# Smooth shading for face in mesh.polygons: face.use_smooth = True

# Connect outer top ring to inner ring for i in range(segments): i_next = (i + 1) % segments bm.faces.new((verts_top[i], verts_top[i_next], inner_verts[i_next], inner_verts[i]))

# Now the mesh is closed (bottom cap, outer walls, top ring, inner cap) # But to make it "solid piece" we need all faces pointing outward. BMesh handles normals but we can recalc.