| .. | ||
| __init__.py | ||
| claude.ai_chat-a1d5c296-c664-46cd-aba6-aafaaa3ec67b_Blender plugin for projecting object outlines onto mesh - Claude.url | ||
| README.md | ||
Mesh Outline Projector
A Blender addon that projects the vertical outline of selected objects onto a target mesh and transfers materials, perfect for architectural visualization and terrain mapping.
Overview
Mesh Outline Projector takes the 2D silhouette of objects (when viewed from above) and "stamps" them onto a mesh below, automatically cutting the mesh and applying the source object's material to the projected area. Think of it as a cookie-cutter that works vertically through 3D space.
Key Features
- Vertical Projection: Projects object outlines straight down (Z-axis) onto target surfaces
- Material Transfer: Automatically applies source object materials to projected regions
- Clean Cutting: Uses Blender's knife project for precise edge creation
- Smart Material Assignment: Point-in-polygon detection with edge tolerance for accurate coverage
- Mesh Cleanup: Automatically removes previous cuts with Limit Dissolve
- Intersection Detection: Validates that objects actually overlap before processing
- Multiple Objects: Process multiple source objects in a single operation
Installation
- Download
mesh_outline_projector.py - Open Blender → Edit → Preferences → Add-ons
- Click "Install..." and select the downloaded file
- Enable "Mesh: Mesh Outline Projector" in the add-ons list
- The panel appears in the 3D Viewport sidebar under the "Outline Projector" tab
Quick Start
Basic Workflow
-
Setup Scene
- Position your source objects (e.g., building footprints) above your target mesh (e.g., terrain)
- Objects can be at any height - only horizontal (XY) overlap matters
-
Select Objects
- Select one or more source objects (the objects whose outlines you want to project)
- Select the target mesh last (it becomes the active object - shown in orange)
-
Set View
- Press Numpad 7 to switch to top orthographic view
- This is required for knife project to work correctly
-
Run Operator
- Open the sidebar (N key) → "Outline Projector" tab
- Adjust settings if needed (see below)
- Click "Project Outline"
What Happens
The addon performs these steps automatically:
- Validates that source objects overlap with target in XY plane
- Cleans up the target mesh (Limit Dissolve + Quads to Tris)
- Resets materials to the first material slot
- For each source object:
- Extracts the horizontal perimeter edges (2D outline)
- Creates a temporary curve from these edges
- Uses knife project to cut the target mesh
- Assigns the source material to faces within the projected area
- Reports results with detailed console output
Settings
Dissolve Angle
- Default: 0.04 degrees
- Range: 0.0 - 5.0 degrees
- Purpose: Controls how aggressively Limit Dissolve removes edges from previous operations
When to adjust:
- Increase (0.5-2.0°) if working with curved or organic surfaces
- Keep low (0.01-0.1°) for architectural/flat surfaces
- Higher values = more aggressive cleanup, fewer edges
Edge Tolerance
- Default: 0.05 units
- Range: 0.0 - 1.0 units
- Purpose: How close a vertex must be to a polygon edge to be considered "on the edge"
When to adjust:
- Increase (0.1-0.5) if missing faces at the boundaries
- Decrease (0.01-0.03) if getting material bleeding outside the outline
- Affects the precision of material assignment at polygon boundaries
Use Cases
Architectural Site Plans
Project building footprints onto terrain meshes:
- Import IFC building models
- Create terrain mesh from topography data
- Project building outlines to create material zones
Terrain Texturing
Stamp different material zones onto landscapes:
- Roads, paths, and sidewalks
- Water bodies and wetlands
- Vegetation zones
- Building pads
Urban Planning
Visualize zoning and land use:
- Different materials for residential/commercial/industrial zones
- Overlay multiple boundary shapes
- Iterate quickly as plans change
Tips & Best Practices
Before Running
✅ Do:
- Ensure source objects are above or at the same level as target mesh
- Use simple, clean geometry for source objects
- Press Numpad 7 (top view) before running
- Save your work before first use
❌ Don't:
- Use extremely complex source meshes (simplify first)
- Forget to set top view
- Run on unsaved files (though Undo works)
Iteration Workflow
The addon is designed for iteration:
- Run projection with objects A and B
- Adjust position/scale of object A
- Run projection again - mesh is automatically cleaned up
- Materials from both objects are preserved
The mesh reset happens automatically - you can run the operator multiple times without manual cleanup.
Material Management
- The addon preserves the first material slot as the "base" material
- Source materials are added as new slots (slot 1, 2, 3, etc.)
- Each run resets everything to the base material before applying projections
- If you want a different base material, assign it to slot 0 before running
Troubleshooting
"No source objects intersect with target mesh"
Problem: Objects don't overlap in the XY plane (when viewed from above)
Solutions:
- Check bounding boxes in debug output
- Move objects horizontally to overlap
- Objects can be at different Z heights - that's fine
- Ensure you're not selecting the target as a source object
Materials not appearing correctly
Problem: Materials bleeding outside boundaries or missing at edges
Solutions:
- Adjust Edge Tolerance setting
- Increase if missing edge faces (try 0.1-0.2)
- Decrease if bleeding outside (try 0.02-0.03)
- Check that source objects have materials assigned
Blender crashes
Problem: Crash during operation (rare)
Solutions:
- Ensure you're in top orthographic view (Numpad 7)
- Simplify source mesh geometry
- Update to latest Blender version
- Check console for error messages
Unexpected results after multiple runs
Problem: Results look different on subsequent runs
Solutions:
- This is normal - each run subdivides the mesh differently
- Knife project creates new edges each time
- Undo (Ctrl+Z) to return to previous state
- The dissolve/cleanup helps but won't make mesh identical
Technical Details
How Outline Detection Works
The addon uses three methods to find outline edges:
- Boundary edges: Edges with only one connected face
- Silhouette edges: Edges where connected faces have different vertical orientations
- Perimeter edges: Vertical edges at the outer boundary
These are combined to form the complete 2D outline when viewed from above.
Material Assignment Algorithm
- Extract horizontal edges from the 3D outline
- Build a 2D polygon from these edges (in world XY space)
- For each face in the target mesh:
- Check if all vertices are inside the polygon OR near an edge
- Uses ray-casting for point-in-polygon test
- Uses perpendicular distance for edge proximity
- Assign material only if all vertices pass
This ensures clean boundaries without bleeding.
Known Limitations
- Requires top orthographic view (Numpad 7) to work correctly
- Works best with relatively flat target meshes
- Very dense meshes may slow down processing
- Complex source geometry may produce unexpected outlines
- Knife project can create overlapping edges in some cases
- Z-axis projection only - cannot project at angles