{"id":31974476,"url":"https://github.com/michaelgermini/python-3d-programming-book","last_synced_at":"2025-10-14T20:17:13.738Z","repository":{"id":311628021,"uuid":"1044354390","full_name":"michaelgermini/python-3d-programming-book","owner":"michaelgermini","description":"Complete Python \u0026 3D Programming Book: 30 chapters, 120+ examples, real-time ray tracing, ML graphics, OpenGL, NumPy","archived":false,"fork":false,"pushed_at":"2025-08-25T15:15:35.000Z","size":782,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-25T17:21:03.382Z","etag":null,"topics":["3d-graphics","computer-graphics","educational","game-development","graphics-programming","machine-learning","numpy","opengl","python","ray-tracing","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelgermini.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-25T14:57:20.000Z","updated_at":"2025-08-25T15:20:24.000Z","dependencies_parsed_at":"2025-08-25T17:21:43.184Z","dependency_job_id":"09def6ac-c566-4624-a1b2-f10e62ffbb78","html_url":"https://github.com/michaelgermini/python-3d-programming-book","commit_stats":null,"previous_names":["michaelgermini/python-3d-programming-book"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/michaelgermini/python-3d-programming-book","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelgermini%2Fpython-3d-programming-book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelgermini%2Fpython-3d-programming-book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelgermini%2Fpython-3d-programming-book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelgermini%2Fpython-3d-programming-book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelgermini","download_url":"https://codeload.github.com/michaelgermini/python-3d-programming-book/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelgermini%2Fpython-3d-programming-book/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021014,"owners_count":26086947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-graphics","computer-graphics","educational","game-development","graphics-programming","machine-learning","numpy","opengl","python","ray-tracing","tutorial"],"created_at":"2025-10-14T20:17:11.286Z","updated_at":"2025-10-14T20:17:13.723Z","avatar_url":"https://github.com/michaelgermini.png","language":"Python","readme":"# Python \u0026 3D Programming Book 📚\n\n[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)\n[![OpenGL](https://img.shields.io/badge/OpenGL-4.0+-green.svg)](https://www.opengl.org/)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Status](https://img.shields.io/badge/Status-Complete-brightgreen.svg)](https://github.com/michaelgermini/python-3d-programming-book)\n[![Stars](https://img.shields.io/github/stars/michaelgermini/python-3d-programming-book?style=social)](https://github.com/michaelgermini/python-3d-programming-book)\n[![Forks](https://img.shields.io/github/forks/michaelgermini/python-3d-programming-book?style=social)](https://github.com/michaelgermini/python-3d-programming-book)\n\n\u003e **A comprehensive educational resource covering Python programming fundamentals to cutting-edge 3D graphics techniques, including real-time ray tracing and machine learning integration.**\n\n## 🎯 Overview\n\nThis repository contains a complete **Python \u0026 3D Programming Book** - a comprehensive learning resource that takes you from Python basics to advanced 3D graphics programming. With **30 chapters**, **120+ working examples**, and **90,000+ lines of code**, this book provides a complete learning path for anyone interested in 3D graphics programming with Python.\n\n### 🌟 Key Features\n\n- **📚 Complete Learning Path**: From Python fundamentals to cutting-edge 3D techniques\n- **🎮 Real-World Examples**: Practical 3D graphics applications and games\n- **⚡ Modern Techniques**: Real-time ray tracing, machine learning integration, and advanced rendering\n- **🛠️ Production-Ready Code**: All examples are functional and well-documented\n- **🌍 Cross-Platform**: Works on Windows, macOS, and Linux\n- **📖 Comprehensive Documentation**: Detailed explanations and usage guides\n- **🔧 Professional Setup**: GitHub Actions, issue templates, and contribution guidelines\n\n## 📖 Table of Contents\n\n### **Part I: Python Fundamentals** (Chapters 1-8)\n- **Chapter 1**: Introduction to Python - Basic syntax, 3D demos, data processing\n- **Chapter 2**: Variables, Data Types, and Operators - 3D coordinates, mathematical operations\n- **Chapter 3**: Control Flow - Scene iteration, event handling, game logic\n- **Chapter 4**: Functions and Lambdas - 3D math functions, reusable components\n- **Chapter 5**: Data Structures - Scene graphs, object management, nested data\n- **Chapter 6**: Object-Oriented Programming - 3D object classes, inheritance, polymorphism\n- **Chapter 7**: Exception Handling - Error recovery, logging, robust applications\n- **Chapter 8**: Modules, Packages, and File I/O - Project organization, scene serialization\n\n### **Part II: Advanced Python Concepts** (Chapters 9-14)\n- **Chapter 9**: Functional Programming - Pure functions, 3D transformations, higher-order functions\n- **Chapter 10**: Iterators and Generators - 3D data streaming, procedural generation\n- **Chapter 11**: Decorators and Context Managers - Performance timing, resource management\n- **Chapter 12**: Working with External Libraries - NumPy, OpenGL, library integration\n- **Chapter 13**: Concurrency and Parallelism - Threading, multiprocessing, async programming\n- **Chapter 14**: Testing and Debugging - Unit testing, debugging tools, performance profiling\n\n### **Part III: Introduction to 3D in Python** (Chapters 15-20)\n- **Chapter 15**: Advanced 3D Graphics Libraries and Tools - Library comparison, performance profiling\n- **Chapter 16**: 3D Math Foundations - Vectors, matrices, quaternions, coordinate systems\n- **Chapter 17**: Camera and Projection Concepts - Camera systems, projection types, view frustum\n- **Chapter 18**: Transformations - Matrix transformations, hierarchies, coordinate systems\n- **Chapter 19**: Scene Graphs and Object Hierarchies - Scene management, spatial organization\n- **Chapter 20**: Basic Lighting Models - Lighting fundamentals, shading techniques, optimization\n\n### **Part IV: Advanced 3D Techniques** (Chapters 21-30)\n- **Chapter 21**: Texturing and Materials - Texture management, material systems, UV mapping\n- **Chapter 22**: Shaders and GLSL Basics - Vertex/fragment shaders, GLSL programming, custom effects\n- **Chapter 23**: Modern OpenGL Pipeline - VBOs, VAOs, uniform buffers, rendering pipeline\n- **Chapter 24**: Framebuffers and Render-to-Texture - Post-processing, reflections, advanced effects\n- **Chapter 25**: Shadow Mapping and Lighting Effects - Shadow mapping, multiple light sources\n- **Chapter 26**: Normal Mapping, Bump Mapping, and PBR - Physically-based rendering workflows\n- **Chapter 27**: Particle Systems and Visual Effects - Particle systems, visual effects, GPU processing\n- **Chapter 28**: Simple Ray Tracing and Path Tracing - Ray tracing fundamentals, global illumination\n- **Chapter 29**: Advanced Rendering Techniques - Deferred rendering, post-processing effects\n- **Chapter 30**: Cutting Edge Graphics Techniques - Real-time ray tracing, machine learning in graphics\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Python 3.8 or higher**\n- **OpenGL-compatible graphics card**\n- **Basic understanding of programming concepts**\n\n### Installation\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/michaelgermini/python-3d-programming-book.git\n   cd python-3d-programming-book\n   ```\n\n2. **Create a virtual environment**:\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n3. **Install dependencies**:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n### Running Examples\n\nEach chapter contains multiple Python files with practical examples:\n\n```bash\n# Navigate to a specific chapter\ncd part1_python_fundamentals/ch01_introduction\n\n# Run an example\npython hello_world.py\n```\n\n## 🎨 Example Projects\n\n### Real-Time Ray Tracing\n```python\nfrom part4_advanced_3d_techniques.ch30_cutting_edge_graphics_techniques.real_time_ray_tracing import HybridRenderer\n\n# Create a hybrid renderer with hardware acceleration\nrenderer = HybridRenderer(800, 600)\nrenderer.setup_ray_tracing()\nrenderer.render_scene()\n```\n\n### 3D Math Operations\n```python\nfrom part3_introduction_to_3d_in_python.ch16_3d_math_foundations.vector_operations import Vector3D\n\n# Create and manipulate 3D vectors\nv1 = Vector3D(1.0, 2.0, 3.0)\nv2 = Vector3D(4.0, 5.0, 6.0)\nresult = v1 + v2\nmagnitude = result.magnitude()\n```\n\n### Particle System\n```python\nfrom part4_advanced_3d_techniques.ch27_particle_systems_and_visual_effects.particle_system import ParticleSystem\n\n# Create a particle system\nparticle_system = ParticleSystem()\nparticle_system.add_emitter(position=(0, 0, 0), emission_rate=100)\nparticle_system.update(delta_time=0.016)\n```\n\n## 🛠️ Technologies Covered\n\n### **Core Technologies**\n- **Python 3.8+** - Core programming language\n- **OpenGL** - Modern graphics programming\n- **NumPy** - Numerical computing and mathematics\n- **PyOpenGL** - Python OpenGL bindings\n- **GLSL** - Shader programming\n\n### **Advanced Graphics**\n- **Real-time Ray Tracing** - Hardware-accelerated rendering\n- **Machine Learning** - AI-powered graphics techniques\n- **Particle Systems** - Visual effects and simulations\n- **Physically-Based Rendering (PBR)** - Realistic materials\n- **Post-Processing Effects** - Screen-space effects and filters\n\n### **Development Tools**\n- **GitHub Actions** - Automated testing and CI/CD\n- **Pytest** - Testing framework\n- **Black** - Code formatting\n- **Flake8** - Code linting\n\n## 📁 Project Structure\n\n```\npython-3d-programming-book/\n├── part1_python_fundamentals/          # Python basics (8 chapters)\n│   ├── ch01_introduction/\n│   ├── ch02_variables/\n│   └── ...\n├── part2_advanced_python_concepts/     # Advanced Python (6 chapters)\n│   ├── ch09_functional_programming/\n│   ├── ch10_iterators_and_generators/\n│   └── ...\n├── part3_introduction_to_3d_in_python/ # 3D foundations (6 chapters)\n│   ├── ch16_3d_math_foundations/\n│   ├── ch17_camera_and_projection_concepts/\n│   └── ...\n├── part4_advanced_3d_techniques/       # Advanced 3D (10 chapters)\n│   ├── ch21_texturing_and_materials/\n│   ├── ch22_shaders_and_glsl_basics/\n│   └── ...\n├── appendices/                         # Reference materials\n│   ├── appendix_a_environment_setup.md\n│   ├── appendix_b_math_reference.md\n│   └── appendix_c_troubleshooting_guide.md\n├── .github/                           # GitHub templates and workflows\n├── requirements.txt                   # Python dependencies\n├── pyproject.toml                    # Modern Python configuration\n└── README.md                         # This file\n```\n\n## 📚 How to Use This Book\n\n### **For Beginners**\nStart with **Part I** and work through each chapter sequentially. Each chapter builds upon the previous ones with practical 3D examples.\n\n### **For Intermediate Programmers**\nYou can skip to **Part II** or **Part III** depending on your Python and graphics experience.\n\n### **For Advanced Users**\nFocus on **Part IV** for cutting-edge 3D techniques and advanced graphics programming.\n\n### **Learning Paths**\n\n#### **Complete Beginner Path**\n1. Part I: Python Fundamentals (Chapters 1-8)\n2. Part II: Advanced Python Concepts (Chapters 9-14)\n3. Part III: Introduction to 3D in Python (Chapters 15-20)\n4. Part IV: Advanced 3D Techniques (Chapters 21-30)\n\n#### **Python Developer Path**\n1. Part III: Introduction to 3D in Python (Chapters 15-20)\n2. Part IV: Advanced 3D Techniques (Chapters 21-30)\n\n#### **Graphics Developer Path**\n1. Part II: Advanced Python Concepts (Chapters 9-14)\n2. Part IV: Advanced 3D Techniques (Chapters 21-30)\n\n## 🎮 Example Applications\n\n### **3D Graphics Applications**\n- **Real-time 3D rendering** with OpenGL\n- **Particle systems** for visual effects\n- **Shadow mapping** and advanced lighting\n- **Post-processing effects** and filters\n- **Physically-based rendering** workflows\n\n### **Game Development**\n- **3D game engines** and frameworks\n- **Physics simulations** and collision detection\n- **Character animation** and skeletal systems\n- **Level design** and scene management\n- **Performance optimization** techniques\n\n### **Scientific Visualization**\n- **Data visualization** in 3D space\n- **Volume rendering** for medical imaging\n- **Mathematical modeling** and simulations\n- **Interactive 3D plots** and charts\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n### **How to Contribute**\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n### **Types of Contributions**\n- **Bug reports** and fixes\n- **New examples** and tutorials\n- **Documentation** improvements\n- **Performance** optimizations\n- **Feature** requests and implementations\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- **OpenGL Community** - For excellent graphics programming resources\n- **Python Community** - For the amazing programming language and ecosystem\n- **Graphics Research Community** - For advancing the state of real-time rendering\n- **Open Source Contributors** - For the tools and libraries that make this possible\n\n## 📞 Support\n\nIf you have any questions or need help:\n\n- 📧 **Email**: michael@germini.info\n- 🐛 **Issues**: [GitHub Issues](https://github.com/michaelgermini/python-3d-programming-book/issues)\n- 📖 **Documentation**: Check the individual chapter README files\n- 💬 **Discussions**: [GitHub Discussions](https://github.com/michaelgermini/python-3d-programming-book/discussions)\n\n## 📊 Project Statistics\n\n- **30 Chapters** covering complete learning path\n- **120+ Working Examples** with practical implementations\n- **90,000+ Lines** of code and documentation\n- **4 Major Parts** from basics to advanced techniques\n- **3 Appendices** with reference materials\n- **Professional Setup** with CI/CD and community guidelines\n\n## 🌟 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=michaelgermini/python-3d-programming-book\u0026type=Date)](https://star-history.com/#michaelgermini/python-3d-programming-book\u0026Date)\n\n---\n\n## 🎉 Get Started Today!\n\nReady to dive into the world of Python and 3D graphics programming? Start your journey with this comprehensive resource:\n\n```bash\ngit clone https://github.com/michaelgermini/python-3d-programming-book.git\ncd python-3d-programming-book\npip install -r requirements.txt\n```\n\n**⭐ If you find this book helpful, please give it a star! ⭐**\n\n*Happy coding and 3D programming! 🎮✨*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelgermini%2Fpython-3d-programming-book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelgermini%2Fpython-3d-programming-book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelgermini%2Fpython-3d-programming-book/lists"}