Blender pluggin (python script) that adds a randomly generated tree with random branches and bend orientations

Overview

Blender add-on for creating a Magic Fractal Tree

Python script which can be installed as a Blender add-on for creating a tree with a set number of segments (i.e. edges), branching with a set probility (default is 50%) with a reduced number of segments (and segment length), and recursing until the number of segments is one. Once installed, the script is accessable as a button in the 3D viewport (Add > Mesh > Magic Fractal Tree).

Install instructions

  1. Ensure you are using Blender 2.8.0 or greater
    1. Blender can be downloaded from here: Blender
  2. To install an add-on, go to Edit > Preferences > Add-ons
    1. Click "Install..." button
    2. Use Blender's file explorer to navigate to where the python script is on disk (where you cloned this git repo)
    3. Row should appear with an empty check-box for enabling "Add Mesh: Magic Fractal Tree"
    4. Enable the Add-on

Usage

From the 3D Viewport, ensure 'Object Mode' is selected in the drop-down. Click 'Add', mouse over to 'Mesh', then mouse down to 'Add Magic Fractal Tree'. Give Blender some time, and it should create a randomly generated tree. An object called 'MagicFractalTree' should appear in your scene collection and remains selected. Before you de-select the object, take note of the UI box that appears at the bottom-left of the 3D Viewport. If you de-select the tree, this UI box dissapears. Open the box to play around with the settings. Note that any change to these settings will cause a new tree to be generated (overwriting the origional tree object).

Branch Count

Starting number of segments (i.e. edges) used for the 'root' branch. Recursive iterations reduce this number by half for each new branch that is created - extruded from the verticies of the root (current) branch. Recursion stops when the branch count is reduced to one.

Bend Range

Random rotation used for determining the direction a new vertex will be extruded as the branch is being created. The first direction the tree chosses to go is completely random (from world origin). Subsequent directions are then calculated as deltas from this first direction (plus/minus the Bend Range).

Branch Split Probablity

Chance a new branch will be extruded from a vertex of the current branch. This is a float value between [0.0 - 1.0], where 0.0 creates no branches and 1.0 creates a branch at every vertex

Initial Branch Radius

This plug-in uses the skin modifier to give the illusion of thickness to the branches. Thickness of the branches can be controlled with this parameter

Reduce Branch Radius

For every new branch off the root branch, reduce the branch radius (thickness) by half. NOTE: This operation is extreemly time intensive because it is using UI operations. It is the author's hope that a new way can be found to do this by using data within the bmesh before mesh data is created. It is not reccomented to increase Branch Count beyond 20 when this feature is enabled.

Owner
Travis Gruber
Software Engineer with a heavy interest in real-time messaging middlewares and distributed computing.
Travis Gruber
SpaCy3Urdu: run command to setup assets(dataset from UD)

Project setup run command to setup assets(dataset from UD) spacy project assets It uses project.yml file and download the data from UD GitHub reposito

Muhammad Irfan 1 Dec 14, 2021
Simple application that does transformation with HPF and LPFs.

Simple application that applies Butterworth, Gaussian & Ideal kernels on HPF and LPFs -aka Frequency Domain Filtering- Upload image from sidebar, set

Merve Noyan 3 Jul 06, 2022
p5 is a Python package based on the core ideas of Processing.

p5 p5 is a Python library that provides high level drawing functionality to help you quickly create simulations and interactive art using Python. It c

p5py 645 Jan 04, 2023
This repo presents you the official code of "VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention"

VISTA VISTA: Boosting 3D Object Detection via Dual Cross-VIew SpaTial Attention Shengheng Deng, Zhihao Liang, Lin Sun and Kui Jia* (*) Corresponding a

104 Dec 29, 2022
Additional useful operations for Python

Pyteal Extensions Additional useful operations for Python Available Operations MulDiv64: calculate m1*m2/d with no overflow on multiplication (TEAL 3+

Ulam Labs 11 Dec 14, 2022
Fisherman is a free open source fishing bot written in python.

Fisherman is a free open source fishing bot written in python.

Pure | Cody 33 Jan 29, 2022
An app to help people apply for admissions on schools/hostels

Admission-helper About An app to help people apply for admissions on schools/hostels This app is a rewrite of Admission-helper-beta-v5.8.9 and I impor

Advik 3 Apr 24, 2022
Its a simple and fun to use application. You can make your own quizes and send the lik of the quiz to your friends.

Quiz Application Its a simple and fun to use application. You can make your own quizes and send the lik of the quiz to your friends. When they would a

Atharva Parkhe 1 Feb 23, 2022
Tindicators is a Python library to calculate the values of various technical indicators

Tindicators is a Python library to calculate the values of various technical indicators

omar 3 Mar 03, 2022
Extrator de dados do jupiterweb

Extrator de dados do jupiterweb O programa é composto de dois arquivos: Um constando apenas de classes complementares que representam as unidades e as

Bruno Aricó 2 Nov 28, 2022
Un script en python qui permet d'automatique bumpée (disboard.org) tout les 2h

auto-bumper Un script en python qui permet d'automatique bumpée (disboard.org) tout les 2h Pour la première utilisation, 1.Lancer Install.bat 2.(faire

!! 1 Jan 09, 2022
Companion Web site for Fluent Python, Second Edition

Fluent Python, the site Source code and content for fluentpython.com. The site complements Fluent Python, Second Edition with extra content that did n

Fluent Python 49 Dec 08, 2022
Buffer overflow example for python

Buffer overflow example for python

Mehmet 1 Jan 04, 2022
Ningyu Jia(nj2459)/Mengyin Ma(mm5937) Call Analysis group project(Group 36)

Group and Section Group 36 Section 001 name and UNI Name UNI Ningyu Jia nj2459 Mengyin Ma mm5937 code explanation Parking.py (1) Calculate the rate of

1 Dec 04, 2021
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

Relog 1.1k Jan 09, 2023
A Non profit app built on top of Frappe framework & ERPNext

Non Profit A Non profit app built on top of Frappe framework & ERPNext. People who change the world need the tools to do it! The Non Profit Modules of

Frappe 16 Nov 17, 2022
Find the remote website version based on a git repository

versionshaker Versionshaker is a tool to find a remote website version based on a git repository This tool will help you to find the website version o

Orange Cyberdefense 110 Oct 23, 2022
Make dbt docs and Apache Superset talk to one another

dbt-superset-lineage Make dbt docs and Apache Superset talk to one another Why do I need something like this? Odds are rather high that you use dbt to

Slido 81 Jan 06, 2023
An advanced NFT Generator

NFT Generator An advanced NFT Generator Free software: GNU General Public License v3 Documentation: https://nft-generator.readthedocs.io. Features TOD

NFT Generator 5 Apr 21, 2022
SQL centered, docker process running game

REQUIREMENTS Linux Docker Python/bash set up image "docker build -t game ." create db container "run my_whatever/game_docker/pdb create" # creating po

1 Jan 11, 2022