All pastes #22dmc67zbq Raw Edit

text paste

public text v1 · immutable
·published 2026-10-30 19:35 UTC
rendered paste body
import blenderimport bpyimport random# Clear existing objects in the scenebpy.ops.object.select_all(action='SELECT')bpy.ops.object.delete(use_global=False)# Helper function to create materialsdef create_material(name, r, g, b):    mat = bpy.data.materials.new(name=name)    mat.use_nodes = True    nodes = mat.node_tree.nodes    principled = nodes.get("Principled BSDF")    if principled:        principled.inputs['Base Color'].default_value = (r, g, b, 1.0)    return mat# Create color palettecolors = {    'road': create_material('RoadMat', 0.1, 0.1, 0.1),    'light_b': create_material('LightB', 0.2, 0.5, 0.8),    'dark_b': create_material('DarkB', 0.7, 0.3, 0.3),    'yellow_b': create_material('YellowB', 0.9, 0.7, 0.2),    'car': create_material('CarMat', 0.1, 0.6, 0.3),    'pole': create_material('PoleMat', 0.4, 0.4, 0.4)}# 1. Create the Road Basebpy.ops.mesh.primitive_plane_add(size=30, location=(0, 0, 0))road = bpy.context.active_objectroad.name = "Road_Base"road.data.materials.append(colors['road'])# 2. Generate 20+ Objects (Buildings, Cars, Streetlights)obj_count = 0# Side 1 Buildings (Left)for i in range(6):    h = random.uniform(4.0, 8.0)    bpy.ops.mesh.primitive_cube_add(size=1, location=(-6, -10 + (i * 4), h/2))    b = bpy.context.active_object    b.name = f"Building_L_{i}"    b.scale = (3, 3, h)    b.data.materials.append(random.choice([colors['light_b'], colors['dark_b'], colors['yellow_b']]))    obj_count += 1# Side 2 Buildings (Right)for i in range(6):    h = random.uniform(4.0, 8.0)    bpy.ops.mesh.primitive_cube_add(size=1, location=(6, -10 + (i * 4), h/2))    b = bpy.context.active_object    b.name = f"Building_R_{i}"    b.scale = (3, 3, h)    b.data.materials.append(random.choice([colors['light_b'], colors['dark_b'], colors['yellow_b']]))    obj_count += 1# Streetlights (Poles + Lamps)for i in range(4):    y_pos = -8 + (i * 6)    # Pole    bpy.ops.mesh.primitive_cylinder_add(radius=0.1, depth=3, location=(-3.5, y_pos, 1.5))    p = bpy.context.active_object    p.name = f"LightPole_{i}"    p.data.materials.append(colors['pole'])    obj_count += 1    # Lamp head    bpy.ops.mesh.primitive_uv_sphere_add(radius=0.2, location=(-3.5, y_pos, 3.1))    lh = bpy.context.active_object    lh.name = f"LampHead_{i}"    lh.data.materials.append(colors['yellow_b'])    obj_count += 1# Cars scattered on the streetfor i in range(4):    bpy.ops.mesh.primitive_cube_add(size=1, location=(random.uniform(-1.5, 1.5), -12 + (i * 7), 0.4))    car = bpy.context.active_object    car.name = f"Car_{i}"    car.scale = (1.2, 2.2, 0.7)    car.rotation_euler = (0, 0, random.uniform(-0.1, 0.1))    car.data.materials.append(colors['car'])    obj_count += 1# 3. Lights + Shadows Setupbpy.ops.object.light_add(type='SUN', radius=1, location=(5, -5, 12))sun = bpy.context.active_objectsun.name = "Main_Sun"sun.data.energy = 4.0sun.data.use_shadow = Truesun.rotation_euler = (0.6, 0.4, 0.2)# 4. Camera Setupbpy.ops.object.camera_add(location=(0, -18, 5))cam = bpy.context.active_objectcam.name = "Scene_Camera"cam.rotation_euler = (1.35, 0, 0) # Tilted downward slightly to look down the streetbpy.context.scene.camera = camprint(f"Generated {obj_count} objects dynamically with colors, lights, and a camera.")