JolifantoBambla / parametric-l-systems

An implementation of parametric L-systems for the Fractals course at TU Wien

Home Page:https://jolifantobambla.github.io/parametric-l-systems/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Parametric L-systems

An implementation of parametric L-systems for the Fractals course at TU Wien.

On Windows, MacOS, and ChromeOS, you can check it out directly at jolifantobambla.github.io/parametric-l-systems in Google Chrome (from version 94 to 114) thanks to the WebGPU origin trial.

Build

Install build dependencies:

Then, within the project root directory, run

wasm-pack build --target web

Run

Install requirements:

Then, within the project root directory

  • Serve the project using an HTTP server (e.g., python -m http.server, or http-server)
  • Navigate to the project's index.html using the browser with WebGPU enabled (e.g., localhost:8000 when using the Python HTTP server defaults, or localhost:8080 when using http-server's defaults)

User documentation

The documentation can be found here, or directly under the Documentation tab on the website (either served locally, or at jolifantobambla.github.io/parametric-l-systems)

Test scenes

The following test scenes can be found here:

Name Description Source
abop-fig-1-19.json A 3D Hilbert curve with 64 point light sources. Algorithmic beaty of plants, Fig. 1.19
abop-fig-2-6.json Honda's tree model. Algorithmic beaty of plants, Fig. 2.6d
forest-abop-fig-2-6.json All four trees shown in Fig. 2.6 in the book. Algorithmic beaty of plants, Fig. 2.6
abop-fig-2-7.json Aono and Kunii's tree model. Algorithmic beaty of plants, Fig. 2.7d
forest-abop-fig-2-7.json All four trees shown in Fig. 2.7 in the book. Algorithmic beaty of plants, Fig. 2.7
tree-prusinkiewicz.json A tree model as shown in Fig. 8g in the paper. L-systems: from the Theory to Visual Models of Plants, Fig. 8g
growing-tree-prusinkiewicz.json Four instances of the tree model as shown in Fig. 8g in the paper with different numbers of iterations. L-systems: from the Theory to Visual Models of Plants, Fig. 8g
tree-prusinkiewicz-using-primitives.json A tree adapted from Fig. 8 in the paper s.t. it has some leaves. L-systems: from the Theory to Visual Models of Plants, Fig. 8
random-forest-prusinkiewicz-using-primitives.json Nine trees adapted from Fig. 8 in the paper s.t. it they have some leaves and use some randomness in their productions, i.e., the trees will look different every time the scene is rendered. L-systems: from the Theory to Visual Models of Plants, Fig. 8
tree-prusinkiewicz-with-floor.json A tree model as shown in Fig. 8g in the paper and a large quad as floor. L-systems: from the Theory to Visual Models of Plants, Fig. 8
tree-stochastic.json A tree adapted from Fig. 8 in the paper s.t. it has uses some randomness in its productions. L-systems: from the Theory to Visual Models of Plants, Fig. 8

About

An implementation of parametric L-systems for the Fractals course at TU Wien

https://jolifantobambla.github.io/parametric-l-systems/

License:MIT License


Languages

Language:JavaScript 98.5%Language:Rust 0.5%Language:CSS 0.4%Language:HTML 0.2%Language:LiveScript 0.0%Language:Makefile 0.0%Language:Zeek 0.0%Language:Kotlin 0.0%Language:Java 0.0%Language:Objective-C 0.0%Language:PLpgSQL 0.0%Language:Dockerfile 0.0%Language:Smithy 0.0%Language:R 0.0%Language:ASL 0.0%Language:Raku 0.0%Language:Nix 0.0%Language:LSL 0.0%Language:HCL 0.0%Language:Red 0.0%Language:Liquid 0.0%Language:Blade 0.0%Language:M4 0.0%Language:TypeScript 0.0%Language:Scala 0.0%Language:COBOL 0.0%Language:Pascal 0.0%Language:TeX 0.0%Language:Haml 0.0%Language:Shell 0.0%Language:ActionScript 0.0%Language:Groovy 0.0%Language:Csound 0.0%Language:Closure Templates 0.0%Language:ABAP 0.0%Language:FreeMarker 0.0%Language:Lua 0.0%Language:Forth 0.0%Language:VBScript 0.0%Language:Tcl 0.0%Language:VHDL 0.0%Language:C++ 0.0%Language:Clojure 0.0%Language:Latte 0.0%Language:Sass 0.0%Language:Slim 0.0%Language:Twig 0.0%Language:EJS 0.0%Language:Crystal 0.0%Language:AutoHotkey 0.0%Language:Fortran 0.0%Language:Perl 0.0%Language:Gherkin 0.0%Language:Elixir 0.0%Language:Stylus 0.0%Language:Go 0.0%Language:Common Lisp 0.0%Language:Logtalk 0.0%Language:Mask 0.0%Language:Pug 0.0%Language:Scheme 0.0%Language:Less 0.0%Language:OCaml 0.0%Language:Ruby 0.0%Language:G-code 0.0%Language:Cirru 0.0%Language:GLSL 0.0%Language:Haskell 0.0%Language:Assembly 0.0%Language:Dart 0.0%Language:Elm 0.0%Language:Erlang 0.0%Language:NSIS 0.0%Language:Vala 0.0%Language:Python 0.0%Language:Swift 0.0%Language:Haxe 0.0%Language:QML 0.0%Language:Vim Snippet 0.0%Language:PowerShell 0.0%Language:CoffeeScript 0.0%Language:SCSS 0.0%Language:F# 0.0%Language:Eiffel 0.0%Language:Nim 0.0%Language:PHP 0.0%Language:OpenSCAD 0.0%Language:Csound Score 0.0%Language:PigLatin 0.0%Language:Verilog 0.0%Language:Batchfile 0.0%Language:Julia 0.0%Language:MATLAB 0.0%Language:Csound Document 0.0%Language:Handlebars 0.0%Language:Io 0.0%Language:Ada 0.0%Language:ColdFusion 0.0%Language:C# 0.0%Language:jq 0.0%