Skip to content

Saml1211/Blender-PJ-System

Repository files navigation

Blender Projection System

License: MIT Blender Version

A comprehensive Blender add-on for AV System Design Engineers to accurately calculate, visualize, and plan projector setups in 3D environments.

Projection System Preview

🎯 MVP Status

The Minimum Viable Product (MVP) has been successfully completed! All planned milestones have been implemented, from basic add-on structure to multi-projector support.

πŸ”‘ Key Features

  • Accurate Projection Calculations: Precise bidirectional relationships between throw distance, image width, and throw ratio
  • Real-time 3D Visualization: Geometry Nodes-based visualization of projection cones with accurate aspect ratios
  • Multi-Projector Management: Collections, duplication, edge blending, and overlap detection for complex setups
  • Model Import Support: OBJ/FBX import with scale control and environment tagging
  • Environment Creation: Quick room setup tools with positioning controls
  • Projection Mapping: Camera-based projection visualization onto model surfaces
  • Unit System Flexibility: Support for both metric and imperial measurements

πŸ“‹ Quick Start

Installation

  1. Download the projection_system_v0.1.0.zip file from this repository
  2. Open Blender and navigate to Edit > Preferences > Add-ons
  3. Click "Install..." and select the downloaded zip file
  4. Enable the add-on by checking the box next to "3D View: Projection Planner MVP"

Note: If you encounter any issues during installation, you can use the cleanup_addon.py script to clean up any previous installations:

  1. Open Blender's Scripting workspace
  2. Create a new script and paste the contents of cleanup_addon.py
  3. Run the script
  4. Close and reopen Blender
  5. Try installing the addon again

Basic Usage

  1. Open the Sidebar in the 3D View (press N if not visible)
  2. Select the "Projection Planner" tab
  3. Add a projector to your scene by clicking "Add Projector"
  4. Adjust parameters like Throw Distance, Image Width, or Throw Ratio
  5. See the projection cone update in real-time in the viewport
  6. Import models or create a basic environment using the Environment section
  7. Use the "Multi-Projector Setup" tab to manage collections of projectors

πŸ“– Documentation

πŸ› οΈ Development

Prerequisites

  • Blender 4.2 or newer
  • Python 3.10+ (included with Blender)
  • Git for version control

Setting Up Development Environment

  1. Clone this repository:

    git clone https://github.com/Saml1211/Blender-PJ-System.git
  2. Create a symlink from the repository to your Blender addons folder:

    • Windows: mklink /D %APPDATA%\Blender Foundation\Blender\4.2\scripts\addons\blender_projection_system path\to\repo\blender_projection_system
    • macOS: ln -s /path/to/repo/blender_projection_system ~/Library/Application\ Support/Blender/4.2/scripts/addons/
    • Linux: ln -s /path/to/repo/blender_projection_system ~/.config/blender/4.2/scripts/addons/
  3. Restart Blender or reload scripts (F3 > "Reload Scripts")

Project Structure

Blender-PJ-System/
β”œβ”€β”€ .github/                   # GitHub-specific files
β”œβ”€β”€ blender_projection_system/ # Main add-on package
β”‚   β”œβ”€β”€ __init__.py           # Add-on registration
β”‚   β”œβ”€β”€ properties.py         # Property definitions
β”‚   β”œβ”€β”€ operators.py          # Operator classes
β”‚   β”œβ”€β”€ ui.py                 # User interface components
β”‚   β”œβ”€β”€ visualization.py      # Geometry nodes and visualization
β”œβ”€β”€ docs/                     # Documentation
β”œβ”€β”€ memory-bank/              # Project documentation
β”œβ”€β”€ tests/                    # Test cases
β”œβ”€β”€ CONTRIBUTING.md           # Contribution guidelines
β”œβ”€β”€ LICENSE                   # MIT License
└── README.md                 # This file

Implemented Milestones

  1. Basic Add-on Structure: Core framework, UI panel, unit toggle
  2. Projector Object Creation: Object hierarchy, custom properties, operators
  3. Core Calculations: Bidirectional parameter linking with throw distance, image width, and throw ratio
  4. Projection Visualization: Geometry Nodes cone visualization with drivers
  5. Model Import: OBJ/FBX import with environment tagging
  6. Multi-Projector Support: Collections, duplication, overlap detection

πŸš€ Upcoming Features

  • Enhanced edge blending visualization
  • Save/load functionality for projector setups
  • Detailed projection visualization (brightness, falloff)
  • Interactive manipulation tools
  • Ambient light simulation
  • Thermal visualization for projector placement
  • VR/AR integration

✨ Contributing

Contributions are welcome! Please check out our Contributing Guidelines for details on how to submit changes and the process for submitting pull requests.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • The Blender Foundation for their amazing open-source 3D creation suite
  • AV professionals for their insights and requirements input
  • All contributors who help improve this tool

About

Projection system mapping and planning tool for Blender.

Topics

Resources

License

Code of conduct

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors