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
Nextstrain build targeted to Omicron

About This repository analyzes viral genomes using Nextstrain to understand how SARS-CoV-2, the virus that is responsible for the COVID-19 pandemic, e

Bedford Lab 9 May 25, 2022
Aerospace utilities: flight conditions package, standard atmosphere model, and more.

Aerospace Utilities About Module that contains commonly-used aerospace utilities for problem solving. Flight Condition: input altitude to compute comm

1 Jan 03, 2022
PyDateWaiter helps waiting special day & calculating remain days till that day with Python code.

PyDateWaiter (v.Beta) PyDateWaiter helps waiting special day(aniversary) & calculating remain days till that day with Python code. Made by wallga gith

wallga 1 Jan 14, 2022
Project5 Data processing system

Project5-Data-processing-system User just needed to copy both these file to a folder and open Project5.py using cmd or using any python ide. It is to

1 Nov 23, 2021
Prophet is a tool to discover resources detailed for cloud migration, cloud backup and disaster recovery

Prophet is a tool to discover resources detailed for cloud migration, cloud backup and disaster recovery

22 May 31, 2022
Herramienta para poder automatizar reuniones en Zoom.

Crear Reunión Zoom con Python Herramienta para poder automatizar reuniones en Zoom. Librerías Requeridas Nombre Comando PyAutoGui pip install pyautogu

JkDev 3 Nov 12, 2022
This is a far more in-depth and advanced version of "Write user interface to a file API Sample"

Fusion360-Write-UserInterface This is a far more in-depth and advanced version of "Write user interface to a file API Sample" from https://help.autode

4 Mar 18, 2022
Pymon is like nodemon but it is for python,

Pymon is like nodemon but it is for python,

Swaraj Puppalwar 2 Jun 11, 2022
A python program with an Objective-C GUI for building and booting OpenCore on both legacy and modern Macs

A python program with an Objective-C GUI for building and booting OpenCore on both legacy and modern Macs, see our in-depth Guide for more information.

dortania 4.7k Jan 02, 2023
Generate Openbox Menus from a easy to write configuration file.

openbox-menu-generator Generate Openbox Menus from a easy to write configuration file. Example Configuration: ('#' indicate comments but not implement

3 Jul 14, 2022
Blender addon to import images as meshes

ImagesAsMesh Blender addon to import images as meshes. Inspired by: ImagesAsPlanes Installation It's like just about every other Blender addon. Downlo

Niccolo Zuppichini 4 Jan 04, 2022
A python script that will automate the boring task of login to the captive portal again and again

A python script that will automate the boring task of login to the captive portal again and again

Rakib Hasan 2 Feb 09, 2022
🤖️ Plugin for Sentry which allows sending notification via DingTalk robot.

Sentry DingTalk Sentry 集成钉钉机器人通知 Requirments sentry = 21.5.1 特性 发送异常通知到钉钉 支持钉钉机器人webhook设置关键字 配置环境变量 DINGTALK_WEBHOOK: Optional(string) DINGTALK_CUST

1 Nov 04, 2021
Google Fit Sensor Component

Google Fit Sensor Component

Ivan Vojtko 21 Dec 20, 2022
Shared utility scripts for AI for Earth projects and team members

Overview Shared utilities developed by the Microsoft AI for Earth team The general convention in this repo is that users who want to consume these uti

Microsoft 38 Dec 30, 2022
Multi View Stereo on Internet Images

Evaluating MVS in a CPC Scenario This repository contains the set of artficats used for the ENGN8601/8602 research project. The thesis emphasizes on t

Namas Bhandari 1 Nov 10, 2021
An open source server for Super Mario Bros. 35

SMB35 A custom server for Super Mario Bros. 35 This server is highly experimental. Do not expect it to work without flaws.

Yannik Marchand 162 Dec 07, 2022
Script para generar automatización de registro de formularios IEEH

Formularios_IEEH Script para generar automatización de registro de formularios IEEH Corresponde a un conjunto de script en python que permiten la auto

vhevia11 1 Jan 06, 2022
Basit bir sunucu - istemci örneği

basitSunucuistemci Aşağıdaki adresteki uygulamadaki process kapanmama sorununun çözülmesi ile oluşturulmuş yeni depo https://github.com/pricheal/pytho

Ali Orhun Akkirman 10 Dec 27, 2022
Fastest python library for making asynchronous group requests.

FGrequests: Fastest Asynchronous Group Requests Installation Install using pip: pip install fgrequests Documentation Pretty easy to use. import fgrequ

Farid Chowdhury 14 Nov 22, 2022