let it leave me like a long breath

let it dissipate or fade in the background

(no subject)

Profile

xax: purple-orange {11/3 knotwork star, pointed down (Default)
howling howling howling

Nav

  • Recent Entries
  • Archive
  • Reading
  • Tags
  • Memories
  • Profile

Tags

  • art - 2 uses
  • asteroid garden - 4 uses
  • code - 19 uses
  • demos - 1 use
  • dreams - 5 uses
  • ff7 fangame - 23 uses
  • fic prompts - 13 uses
  • gamedev challenge - 82 uses
  • hell game - 76 uses
  • nanowrimo - 11 uses
  • plants - 9 uses
  • process - 52 uses
  • programming - 51 uses
  • screenshots - 5 uses
  • writing log - 83 uses

May 2025

S M T W T F S
    123
45678 910
1112131415 1617
18192021222324
25262728293031
  • Sep. 16th, 2018
  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    [personal profile] xax
    Tags:
    • gamedev challenge
    posted @ 11:17 pm

    okay gamedev challenge reportback time

    this time what i wanted to do was get some 'open' l-systems working ('open' is a technical word in the academic literature that means capable of communicating with an external system to guide the expansion of the system, such as e.g., plants reporting the light level of their leaves or the water level of their roots)

    things didn't go great. i spent the first week and a half trying to get the l-system left and right contexts calculated correctly, so that was pretty frustrating, especially given the simplicity of the final solution.

    okay so an l-system is a parallel rewriting system, which means that it uses a series of rules to convert a string into another string (that's the 'rewriting' part) and that when it does the conversion it converts all characters at once (that's the 'parallel' part). simple l-systems have rules like K → K-K++K-K, which is, given a K turn it into the sequence K-K++K-K. more advanced l-systems involve parameters and predicates and stuff like that. they also include contexts. so instead of just saying A → AB (replace all As with AB) they say things like A < A > B → CAB, which means 'for every A that is preceded by an A and a followed by a B, replace it with CAB'. figuring out what's 'before' and whats 'after' each symbol is initially trivial, but nearly ever l-system is what is called a bracketed l-system, which uses symbols like [ and ] to permit branches. so a string like F[-F]+F is a split branch, where one branch runs -F and the other 'main' branch runs +F this means that 'before' and 'after' symbols get more complex to calculate, since the strings that are linearly before a given symbol might not actually be before it within the tree, and the strings that are linearly after a given symbol might not actually be after it. and also, the symbols that are after it might be a tree of symbols, rather than only a string. (since for A[B]C the A is followed by both B and C.) in the literature, these things are called the 'left context' (the string of things before it) and the 'right context' (the tree of things after it)

    i only actually implemented one l-system this entire time, which was a system from a paper that basically shows a simple system that imitates a plant that sends out a pulse to its leaves to control how they grow, and the leaves send a signal back to the root telling it how much energy it has*. to do that it uses some fairly involved predicates on left and right contexts.

    anyway so the first working setup i got is here and after that i got some more advanced renders of that same system working, plus a deck of systems with tweaked angle values that lead to different trees. not all that exciting, though it did get me closer to some more robust rendering primitives. now i can render arbitrary prismatoids at arbitrary rotations! which was not a thing i could do before.

    did not actually get open systems working, which kinda sucked, but at least i'm in a much better place to get them done at some point later since i have most of the infrastructure i'll need.

    ---

    *kind of

    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    • Reply
Page generated Jan. 3rd, 2026 03:44 am
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical