Variations that use L-Systems to generate shapes. These are all “blur” variations that ignore their input and just generate a random point on the shape for each iteration.
ย
<flame smooth_gradient="0" version="JWildfire V6.00 (16.08.2020)" size="250 250" center="8.0 -2.08" scale="14.512383900928793" rotate="0.0" filter="0.75" filter_type="GLOBAL_SHARPENING" filter_kernel="MITCHELL_SMOOTH" filter_indicator="0" filter_sharpness="4.0" filter_low_density="0.025" oversample="1" post_noise_filter="0" post_noise_filter_threshold="0.35" ai_post_denoiser="NONE" post_optix_denoiser_blend="0.11111" quality="10.0" background_type="SINGLE_COLOR" background="0.4 0.4 0.4" bg_transparency="0" fg_opacity="1.0" brightness="50.0" saturation="1.0" gamma="4.0" gamma_threshold="0.01" vibrancy="1.0" contrast="1.0" white_level="220.0" temporal_samples="1.0" cam_zoom="1.0" cam_pitch="0.0" cam_yaw="0.0" cam_roll="0.0" cam_persp="0.0" cam_xfocus="0.0" cam_yfocus="0.0" cam_zfocus="0.0" cam_pos_x="0.0" cam_pos_y="0.0" cam_pos_z="0.0" cam_zpos="0.0" cam_dof="0.0" cam_dof_area="0.5" cam_dof_exponent="2.0" low_density_brightness="0.24" balancing_red="1.0" balancing_green="1.0" balancing_blue="1.0" cam_dof_shape="BUBBLE" cam_dof_scale="1.0" cam_dof_rotate="0.0" cam_dof_fade="1.0" resolution_profile="500x500" antialias_amount="0.25" antialias_radius="0.5" post_symmetry_type="NONE" post_symmetry_order="3" post_symmetry_centre_x="0.0" post_symmetry_centre_y="0.0" post_symmetry_distance="1.25" post_symmetry_rotation="6.0" frame="1" frame_count="300" fps="30" post_blur_radius="0" post_blur_fade="0.95" post_blur_falloff="2.0" zbuffer_scale="1.0" zbuffer_bias="0.0" zbuffer_filename="PRE_ZBUF" centreXCurve_enabled="false" centreXCurve_view_xmin="0" centreXCurve_view_xmax="2" centreXCurve_view_ymin="8.0" centreXCurve_view_ymax="8.0" centreXCurve_interpolation="SPLINE" centreXCurve_selected_idx="0" centreXCurve_locked="false" centreXCurve_point_count="1" centreXCurve_x0="1" centreXCurve_y0="8.0" centreYCurve_enabled="false" centreYCurve_view_xmin="0" centreYCurve_view_xmax="2" centreYCurve_view_ymin="-2.08" centreYCurve_view_ymax="-2.08" centreYCurve_interpolation="SPLINE" centreYCurve_selected_idx="0" centreYCurve_locked="false" centreYCurve_point_count="1" centreYCurve_x0="1" centreYCurve_y0="-2.08" camPitchCurve_enabled="false" camPitchCurve_view_xmin="0" camPitchCurve_view_xmax="2" camPitchCurve_view_ymin="-3.6" camPitchCurve_view_ymax="-3.6" camPitchCurve_interpolation="SPLINE" camPitchCurve_selected_idx="0" camPitchCurve_locked="false" camPitchCurve_point_count="1" camPitchCurve_x0="1" camPitchCurve_y0="-3.6" camYawCurve_enabled="false" camYawCurve_view_xmin="0" camYawCurve_view_xmax="2" camYawCurve_view_ymin="1.2" camYawCurve_view_ymax="1.2" camYawCurve_interpolation="SPLINE" camYawCurve_selected_idx="0" camYawCurve_locked="false" camYawCurve_point_count="1" camYawCurve_x0="1" camYawCurve_y0="1.2" camBankCurve_enabled="false" camBankCurve_view_xmin="0" camBankCurve_view_xmax="2" camBankCurve_view_ymin="-12.8" camBankCurve_view_ymax="-12.8" camBankCurve_interpolation="SPLINE" camBankCurve_selected_idx="0" camBankCurve_locked="false" camBankCurve_point_count="1" camBankCurve_x0="1" camBankCurve_y0="-12.8" pixelsPerUnitCurve_enabled="false" pixelsPerUnitCurve_view_xmin="0" pixelsPerUnitCurve_view_xmax="2" pixelsPerUnitCurve_view_ymin="50.0" pixelsPerUnitCurve_view_ymax="50.0" pixelsPerUnitCurve_interpolation="SPLINE" pixelsPerUnitCurve_selected_idx="0" pixelsPerUnitCurve_locked="false" pixelsPerUnitCurve_point_count="1" pixelsPerUnitCurve_x0="1" pixelsPerUnitCurve_y0="50.0" mixer_mode="OFF" grad_edit_hue_curve_enabled="false" grad_edit_hue_curve_view_xmin="-5" grad_edit_hue_curve_view_xmax="260" grad_edit_hue_curve_view_ymin="-5.0" grad_edit_hue_curve_view_ymax="260.0" grad_edit_hue_curve_interpolation="SPLINE" grad_edit_hue_curve_selected_idx="0" grad_edit_hue_curve_locked="false" grad_edit_hue_curve_point_count="12" grad_edit_hue_curve_x0="0" grad_edit_hue_curve_y0="255.0" grad_edit_hue_curve_x1="23" grad_edit_hue_curve_y1="17.85" grad_edit_hue_curve_x2="46" grad_edit_hue_curve_y2="17.85" grad_edit_hue_curve_x3="70" grad_edit_hue_curve_y3="41.795580110497234" grad_edit_hue_curve_x4="93" grad_edit_hue_curve_y4="68.09941520467837" grad_edit_hue_curve_x5="116" grad_edit_hue_curve_y5="68.09941520467837" grad_edit_hue_curve_x6="139" grad_edit_hue_curve_y6="126.28571428571429" grad_edit_hue_curve_x7="162" grad_edit_hue_curve_y7="173.52209944751382" grad_edit_hue_curve_x8="185" grad_edit_hue_curve_y8="212.5" grad_edit_hue_curve_x9="209" grad_edit_hue_curve_y9="212.5" grad_edit_hue_curve_x10="232" grad_edit_hue_curve_y10="220.95549738219896" grad_edit_hue_curve_x11="255" grad_edit_hue_curve_y11="220.95549738219896" grad_edit_saturation_curve_enabled="false" grad_edit_saturation_curve_view_xmin="-5" grad_edit_saturation_curve_view_xmax="260" grad_edit_saturation_curve_view_ymin="-5.0" grad_edit_saturation_curve_view_ymax="260.0" grad_edit_saturation_curve_interpolation="SPLINE" grad_edit_saturation_curve_selected_idx="0" grad_edit_saturation_curve_locked="false" grad_edit_saturation_curve_point_count="12" grad_edit_saturation_curve_x0="0" grad_edit_saturation_curve_y0="255.0" grad_edit_saturation_curve_x1="23" grad_edit_saturation_curve_y1="255.0" grad_edit_saturation_curve_x2="46" grad_edit_saturation_curve_y2="255.0" grad_edit_saturation_curve_x3="70" grad_edit_saturation_curve_y3="255.0" grad_edit_saturation_curve_x4="93" grad_edit_saturation_curve_y4="183.98734177215192" grad_edit_saturation_curve_x5="116" grad_edit_saturation_curve_y5="183.98734177215192" grad_edit_saturation_curve_x6="139" grad_edit_saturation_curve_y6="198.3333333333333" grad_edit_saturation_curve_x7="162" grad_edit_saturation_curve_y7="189.93827160493825" grad_edit_saturation_curve_x8="185" grad_edit_saturation_curve_y8="255.0" grad_edit_saturation_curve_x9="209" grad_edit_saturation_curve_y9="255.0" grad_edit_saturation_curve_x10="232" grad_edit_saturation_curve_y10="230.82938388625593" grad_edit_saturation_curve_x11="255" grad_edit_saturation_curve_y11="230.82938388625593" grad_edit_luminosity_curve_enabled="false" grad_edit_luminosity_curve_view_xmin="-5" grad_edit_luminosity_curve_view_xmax="260" grad_edit_luminosity_curve_view_ymin="-5.0" grad_edit_luminosity_curve_view_ymax="260.0" grad_edit_luminosity_curve_interpolation="SPLINE" grad_edit_luminosity_curve_selected_idx="0" grad_edit_luminosity_curve_locked="false" grad_edit_luminosity_curve_point_count="12" grad_edit_luminosity_curve_x0="0" grad_edit_luminosity_curve_y0="127.5" grad_edit_luminosity_curve_x1="23" grad_edit_luminosity_curve_y1="125.0" grad_edit_luminosity_curve_x2="46" grad_edit_luminosity_curve_y2="125.0" grad_edit_luminosity_curve_x3="70" grad_edit_luminosity_curve_y3="164.5" grad_edit_luminosity_curve_x4="93" grad_edit_luminosity_curve_y4="118.5" grad_edit_luminosity_curve_x5="116" grad_edit_luminosity_curve_y5="118.5" grad_edit_luminosity_curve_x6="139" grad_edit_luminosity_curve_y6="164.99999999999997" grad_edit_luminosity_curve_x7="162" grad_edit_luminosity_curve_y7="133.5" grad_edit_luminosity_curve_x8="185" grad_edit_luminosity_curve_y8="127.5" grad_edit_luminosity_curve_x9="209" grad_edit_luminosity_curve_y9="127.5" grad_edit_luminosity_curve_x10="232" grad_edit_luminosity_curve_y10="105.5" grad_edit_luminosity_curve_x11="255" grad_edit_luminosity_curve_y11="105.5"> <xform weight="0.5" color_type="DIFFUSION" color="0.28" symmetry="-1.0" material="0.0" material_speed="0.0" mod_gamma="0.0" mod_gamma_speed="0.0" mod_contrast="0.0" mod_contrast_speed="0.0" mod_saturation="0.0" mod_saturation_speed="0.0" mod_hue="0.0" mod_hue_speed="0.0" lsystem_js="1.0" lsystem_js_fx_priority="0" lsystem_js_iters="5" lsystem_js_iters_enabled="false" lsystem_js_iters_view_xmin="0" lsystem_js_iters_view_xmax="2" lsystem_js_iters_view_ymin="5.0" lsystem_js_iters_view_ymax="5.0" lsystem_js_iters_interpolation="SPLINE" lsystem_js_iters_selected_idx="0" lsystem_js_iters_locked="false" lsystem_js_iters_point_count="1" lsystem_js_iters_x0="1" lsystem_js_iters_y0="5.0" lsystem_js_step="0.18" lsystem_js_step_enabled="false" lsystem_js_step_view_xmin="0" lsystem_js_step_view_xmax="2" lsystem_js_step_view_ymin="0.18" lsystem_js_step_view_ymax="0.18" lsystem_js_step_interpolation="SPLINE" lsystem_js_step_selected_idx="0" lsystem_js_step_locked="false" lsystem_js_step_point_count="1" lsystem_js_step_x0="1" lsystem_js_step_y0="0.18" lsystem_js_angle="0.0" lsystem_js_presetId="8" lsystem_js_presetId_enabled="false" lsystem_js_presetId_view_xmin="0" lsystem_js_presetId_view_xmax="2" lsystem_js_presetId_view_ymin="8.0" lsystem_js_presetId_view_ymax="8.0" lsystem_js_presetId_interpolation="SPLINE" lsystem_js_presetId_selected_idx="0" lsystem_js_presetId_locked="false" lsystem_js_presetId_point_count="1" lsystem_js_presetId_x0="1" lsystem_js_presetId_y0="8.0" lsystem_js_show_lines_param="1" lsystem_js_show_lines_param_enabled="false" lsystem_js_show_lines_param_view_xmin="0" lsystem_js_show_lines_param_view_xmax="2" lsystem_js_show_lines_param_view_ymin="1.0" lsystem_js_show_lines_param_view_ymax="1.0" lsystem_js_show_lines_param_interpolation="SPLINE" lsystem_js_show_lines_param_selected_idx="0" lsystem_js_show_lines_param_locked="false" lsystem_js_show_lines_param_point_count="1" lsystem_js_show_lines_param_x0="1" lsystem_js_show_lines_param_y0="1.0" lsystem_js_line_thickness="0.5" lsystem_js_show_points_param="0" lsystem_js_show_points_param_enabled="false" lsystem_js_show_points_param_view_xmin="0" lsystem_js_show_points_param_view_xmax="2" lsystem_js_show_points_param_view_ymin="0.0" lsystem_js_show_points_param_view_ymax="0.0" lsystem_js_show_points_param_interpolation="SPLINE" lsystem_js_show_points_param_selected_idx="0" lsystem_js_show_points_param_locked="false" lsystem_js_show_points_param_point_count="1" lsystem_js_show_points_param_x0="1" lsystem_js_show_points_param_y0="0.0" lsystem_js_point_thickness_param="1.0" lsystem_js_point_thickness_param_enabled="false" lsystem_js_point_thickness_param_view_xmin="0" lsystem_js_point_thickness_param_view_xmax="2" lsystem_js_point_thickness_param_view_ymin="1.0" lsystem_js_point_thickness_param_view_ymax="1.0" lsystem_js_point_thickness_param_interpolation="SPLINE" lsystem_js_point_thickness_param_selected_idx="0" lsystem_js_point_thickness_param_locked="false" lsystem_js_point_thickness_param_point_count="1" lsystem_js_point_thickness_param_x0="1" lsystem_js_point_thickness_param_y0="1.0" lsystem_js_amountCurve_enabled="false" lsystem_js_amountCurve_view_xmin="0" lsystem_js_amountCurve_view_xmax="2" lsystem_js_amountCurve_view_ymin="1.0" lsystem_js_amountCurve_view_ymax="1.0" lsystem_js_amountCurve_interpolation="SPLINE" lsystem_js_amountCurve_selected_idx="0" lsystem_js_amountCurve_locked="false" lsystem_js_amountCurve_point_count="1" lsystem_js_amountCurve_x0="1" lsystem_js_amountCurve_y0="1.0" lsystem_js_grammar="3B20536D616C6C20736574206F6620436F6D6D616E647320666F7220746865204C73797374656D5F6A7320766172696174696F6E20656E204A5746200A3B20462C206F722064203A2044726177207365676D656E7420666F7277617264202853746570292073697A65200A3B20472C206F72206D203A206D6F766520666F72776172642C20776974686F75742064726177696E67202853746570292053697A65200A3B202B203A20726F746174652074686520747572746C65203930204465677265737320636F756E746572636C6F636B77697365200A3B202D203A20726F746174652074686520747572746C65203930204465677265737320636C6F636B77697365200A3B207C203A20726F746174652074686520747572746C65203138302044656772657373200A3B2021203A205377697463682074686520726F7461746174696F6E20616E676C6520636F6D6D616E647320272B2720636C6F636B776973652C20272D27203D20636F756E746572636C6F636B77697365200A3B205B203A20707573682074686520547572746C65207374617465206F6E20737461636B200A3B205D203A20706F702074686520547572746C6520537461636B2066726F6D20537461636B200A414448313535207B203B20416E74686F6E792048616E6D657220323030300A416E676C65203435203B2043657361726F20766172696174696F6E0A4178696F6D20660A663D662B2B2B2B2B2B2B2B2B2B662D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D662B2B2B2B2B2B2B2B2B2B660A7D0A" coefs="1.0 0.0 0.0 1.0 0.0 0.0" chaos="1.0" colorCurve_enabled="false" colorCurve_view_xmin="0" colorCurve_view_xmax="2" colorCurve_view_ymin="0.28" colorCurve_view_ymax="0.28" colorCurve_interpolation="SPLINE" colorCurve_selected_idx="0" colorCurve_locked="false" colorCurve_point_count="1" colorCurve_x0="1" colorCurve_y0="0.28"/> <palette count="256" format="RGB"> FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000 FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000 FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FA6900FA6900FA6900FA6900 FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900 FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900FA6900 FA6900FA6900FA6900FA6900FFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4A FFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4A FFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4AFFFC4A 65CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC21 65CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC21 65CC2165CC2165CC2165CC2165CC2165CC2165CC2165CC215FEBE75FEBE75FEBE75FEBE7 5FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE7 5FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE75FEBE7 5FEBE75FEBE75FEBE75FEBE73A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE0 3A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE0 3A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE03A2BE0 FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FF FF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFC90AA3C90AA3C90AA3C90AA3 C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3 C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3C90AA3 C90AA3C90AA3C90AA3C90AA3 </palette> </flame>
ย
An L-System or Lindenmayer System uses a string rewriting framework to create organic and fractal patterns. It uses a two step process:
Step 1: Starting with an initial string or characters, the “axiom”, the system uses a set of rules to iteratively rewrite the characters to create a new string. In each iteration, each character in the string is replace with a new sequence of characters defined by the rules. This is the L-System proper; it only creates a string without interpreting it.
Step 2: The resulting string is interpreted graphically, most commonly using a turtle graphics paradigm, where the characters are commands that tell a pen-weilding robotic turtle how to move across a sheet of paper. (The 3D version is harder to visualize, but works the same way.)
There is no single standard for the formats of the L-System rules or turtle commands, so pay close attention to their definitions in each particular variation. Many L-Systems can be reformulated as Iterated Function Systems; these variations don’t attempt that; they just iterate the rules on the axiom and interpret the result graphically.
https://en.wikipedia.org/wiki/L-system
http://paulbourke.net/fractals/lsys/
lsystem_js
Create a two dimensional shape using an L-System. Compatible with the Fractint L-System type. See general description above.
Type: 2D
Author: Jesus Sosa
Date: 31 Oct 2017
To prevent accidentally hanging JWildfire, the length of the string generated by the L-System is limited to 25,000 characters. This can be changed with the preference tinaLSystemMaxLength if more intricate patterns are needed.
Grammar
The L-System grammar specified by the grammar parameter has the following format (this is the default grammar for the variation):
ADH155 { ; Anthony Hanmer 2000, Cesaro variation
Angle 45 ; The angle increment in degrees
Axiom f ; The starting character string
f=f++++++++++f--------------------f++++++++++f
}
Text after a semicolon is ignored, allowing comments to be specified. The grammar begins with name of the L-System and the definition is enclosed in curly braces. The Angle keyword specifies the default angle (this may be overridden with the angle parameter). The Axiom keyword specifies the starting string; it is one character in this example, but may be multiple characters if desired.
Rules are specified in the format “c=string”, and convert the single character ‘c’ into “string”.
Drawing Commands
After the axiom is iterated a number of times to produce the final string, that string is used to control the turtle. Each character in the string is a command. Case is ignored, so either ‘F’ or ‘f’ can be used to draw forward. Unlisted characters are ignored for drawing, but may be used by the grammar to create more complex strings. Some commands take a numeric argument, shown with “##”. This may be any unsigned number; fractions must start with ‘0’ so, for example, use “@0.5”, not “@.5”.
Character | Description |
---|---|
C## | Reserved (currently ignored) |
D | Draw forward |
F | Draw forward |
G | Move forward (without drawing) |
M | Move forward |
+ | Rotate the turtle left (counterclockwise) |
– | Rotate the turtle right (clockwise) |
| | Turn around (rotate 180ยฐ) |
! | Reverse directions (makes ‘+’ rotate right and ‘-‘ left) |
[ | Push the current turtle state onto a stack |
] | Pop the current turtle state from the stack (restores the previous state) |
/## | Rotate right ## degrees |
## | Rotate left ## degrees |
@## | Scale the step size by ##; ## may be a plain number, or preceded by I for inverse (divide instead of multiply) or Q for square root (for example @IQ2 divides the step size by the square root of 2) |
<## | Reserved (currently ignored) |
>## | Reserved (currently ignored) |
Parameters
Parameter | Description |
---|---|
grammar | The grammar for the L-System; see description above |
iters | Number of times to iterate the L-System before drawing |
step | Length of each drawing step |
angle | Angle to turn; 0 to use the value specified in the grammar |
presetId | -1: Use the grammar from the grammar parameter Other: Use a preset grammar (currently 0 through 25) |
show_lines_param | Relative density of lines compared to points; typically set to 1 to show the lines and 0 to hide them, but, for example, if show_lines_param is 5 and show_points_param is 1 then lines will be five times more dense than points |
line_thickness | Thickness of drawn lines |
show_points_param | Relative density of points compared to lines; typically set to 1 to show the points and 0 to hide them. |
point_thickness | Thickness of drawn points |
https://jwildfire-forum.overwhale.com/viewtopic.php?f=23&t=2555
lsystem3D_js
Create a three dimensional mesh using an L-System. Compatible with the L-System description in The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindenmayer. See general description above.
Type: 3D
Author: Jesus Sosa, based on Lparser by Laurens Laprรฉ
Date: 23 Nov 2017
Grammar
The L-System grammar specified by the grammar parameter contains lines of the form “keyword argument”, where “keyword” is from the table below. Comments begin with a ‘#’.
Keyword | Default | Description |
---|---|---|
angle x | 45 | Angle for drawing commands that rotate the turtle |
axiom s | (none) | Start string for the L-System |
color i r g b | (none) | Set color with index i (used by the ‘c’ drawing command) to the color (r,g,b) |
min_thickness | 0 | Lower limit for thickness (so elements won’t disappear when they get too thin) as a percentage of length |
mutation x | 0 | Mutates the rule set x times before iterating |
poly_limit x | no limit | Limit the resulting mesh to x polygons |
recursion x | 1 | Recursion level (number of times the rules are iterated); be careful not to make it too high or JWildfire will hang. |
rule s | (none) | Add a rule to the L-System; the format is c=string, and the rule will convert the character ‘c’ to the string |
shape x | 0 | If 1, make the output shape a cylinder with smoothing enabled |
switch_yz | 0 | Swap y and z coordinates on output if 1 |
thickness x | 100 | Starting thickness as a percentage of length |
Drawing Commands
After the axiom is iterated a number of times to produce the final string, that string is used to control the turtle. Each character in the string is a command. Unlisted characters are ignored for drawing, but may be used by the grammar to create more complex strings. Some commands take an optional numeric argument in parentheses, shown with “(x)”; the Default column shows the value if the number is omitted.
Character | Default | Description |
---|---|---|
F(x) | full length | Move x forward and draw |
f(x) | full length | Move x forward without drawing |
g(x) | full length | Move x forward without drawing; don’t record a vertex in the current polygon |
Z(x) | half length | Move x forward and draw |
z(x) | half length | Move x forward without drawing |
+(x) | angle from grammar | Turn x degrees left around up vector |
-(x) | angle from grammar | Turn x degrees right around up vector |
&(x) | angle from grammar | Pitch x degrees down around left vector |
^(x) | angle from grammar | Pitch x degrees up around left vector |
<(x) | angle from grammar | roll x degrees left around forward vector |
>(x) | angle from grammar | roll x degrees right around forward vector |
| | Turn 180 degrees around up vector | |
% | Turn 180 degrees around forward vector | |
$ | Roll until horizontal | |
~(x) | 360 | turn/pitch/roll in a random direction; if x is given, limit motion to x degrees |
t(x) | 0.2 | Correction for gravity |
[ | Push the current turtle state onto a stack | |
] | Pop the current turtle state from the stack (restores the previous state) | |
{ | Start polygon shape | |
} | End polygon shape | |
“(x) | 1.1 | Multiply length by x |
‘(x) | 0.9 | Multiply length by x |
” (x) | 1.1 | Multiply angle by x |
‘ (x) | 0.9 | Multiply angle by x |
?(x) | 1.4 | Multiply thickness by x |
!(x) | 0.7 | Multiply thickness by x |
c(x) | increment | Set color index to x (add 1 if x omitted) |
Parameters
Parameter | Description |
---|---|
grammar | The grammar for the L-System; see description above |
presetId | 0: Use the grammar from the grammar parameter Other: Use a preset grammar (currently 1 through 21) |
scale_x, scale_y, scale_z | Scale factors for x, y, and z |
offset_x, offset_y, offset_z | Shift the mesh in the x, y, and z directions |
subdiv_level, subdiv_smooth_passes, subdiv_smooth_lambda, subdiv_smooth_mu | Not used |
blend_colormap | Not used |
displ_amount | Not used |
blend_displ_map | Not used |
receive_only_shadows | If set to 1, and solid rendering is enabled, the mesh will be invisible but will show shadows that fall on it (hard shadows must be enabled to see any) |
https://jwildfire-forum.overwhale.com/viewtopic.php?f=23&t=2563
https://jwildfire-forum.overwhale.com/viewtopic.php?f=17&t=2689
http://laurenslapre.nl/lapre_004.htm
Table of Contents