We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Talk:Dafne
I have moved the macros and unverifiable programs to a sketch page User:Miui/Dafnemacros, whether they are related to the L-system is TBD. Miui (talk) 21:46, 20 June 2026 (UTC)
Source code
I only see executables and RAR files on GitHub. Could you share the source code for your interpreter/compiler there as well? Corbin (talk) 21:54, 20 June 2026 (UTC)
- Yeah, absolutely. Give me some time and I will organize it. Generally, however if you have the proper initial set of cells you can use some batchfile and netpbm.
with input.ppm
P6 # Dafne et cetera 192 33 255
@echo off
setlocal enabledelayedexpansion
set "input=input.ppm"
for /l %%i in (9,1,999) do (
set "outfile=output%%i.ppm"
set /a line=0
>"!outfile!" (
for /f "usebackq delims=" %%A in ("%input%") do (
set /a line+=1
if !line! equ 3 (
echo %%i
) else (
echo %%A
)
)
)
echo
)
echo
then append the bin to the headers
for %%f in (output*.ppm) do (
echo Appending binary data to %%f ...
copy /b "%%f"+"input.bin" "%%f.tmp" >nul
move /y "%%f.tmp" "%%f" >nul
)
where input.bin is here. (raw input.bin)
You can have a basic compiler using irfanview slideshow executable plugin lmao. (The Ð basis can be exploited in plaintext scr .exes) Granted I will hopefuly have a 1D interpreter at some point soon. Miui (talk) 01:09, 21 June 2026 (UTC)
No L-system listed
This is supposed to be an L-system, but there isn't a standard presentation of one anywhere in the article. Corbin (talk) 15:42, 29 June 2026 (UTC) This action has been automatically identified as harmful, and therefore disallowed. If you believe your action was constructive, please inform an administrator of what you were trying to do. A brief description of the abuse rule which your action matched is: certain users are not allowed to edit other people's user or user talk pages
- Whatever you believe Dafne is supposed to be can be placed in the page DAFNE :D. Im sure the 576 possible formalisms have nothing to do with combinatorics. https://www.vedicmaths.org/images/PDFs/VM_Journal/Vedic_Square_-Factorization_Dyads.pdf Oh and dont come back with that "I dont get it" get make DAFNE then. Miui (talk) 22:13, 29 June 2026 (UTC)
- p.s. i would sincerely suggest checking out Robert Dickau's work on 2d L-systems. https://web.archive.org/web/20260607233546/https://www.robertdickau.com/lsys2d.html. It is tempting to generalize it to a Peano curve but take a look at Croft's work and see if you can't discern why the peano system can be so highly-composed into Dafne.
If taken as a D0L system
def step_0L(word, productions):
new = ""
for s in word:
new += productions.get(s, s)
return new
# -- Dafne L-system ----------------------------------------------------------
ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0" # A=0, B=1, …, Z=25, 0=26
SEED = [[ALPHABET.index(c) for c in row]
for row in ["DAFNE", "ABRDN", "FR0RF", "NDRBA", "ENFAD"]]
M = [[0,4,8,3,7],
[4,8,3,4,5],
[8,3,7,5,3],
[3,4,5,3,1],
[7,5,3,1,0]]
def make_productions(row_band):
"""
One production table for a horizontal row-band R ? {0,1,2,3}.
Each phase symbol k maps to 7 symbols: the R-th row of µ(k).
µ(k)[R][C] = (k + C + 7·R) mod 27
"""
return {
ALPHABET[k]: ''.join(ALPHABET[(k + c + 7 * row_band) % 27]
for c in range(7))
for k in range(27)
}
def render(phase_word, row_class):
"""Render a word of phase symbols to a character string for one row-class r."""
out = ""
for sym in phase_word:
k = ALPHABET.index(sym)
for p in range(5):
out += ALPHABET[(SEED[row_class][p] + k * M[row_class][p]) % 27]
return out
# -- Run ---------------------------------------------------------------------
axiom = "A" # phase 0 = the DAFNE seed block
for i in range(2): # generation 0 and 1
# Build the chunk grid: 4 row-bands, each a word of phase symbols
chunk_rows = [step_0L(axiom, make_productions(R)) for R in range(4)]
print(f"\n-- generation {i} --")
for R, chunk_word in enumerate(chunk_rows):
for r in range(5): # 5 character rows per row-band
print(render(chunk_word, r))
# Advance: each row-band word is one step further
axiom = chunk_rows[0] # all 4 bands share the same structure,
# shifted; advancing band-0 is enough
# (see note below)
will produce

Howevever I don't think Dafne is strictly a D0L and my suspicion is a P2L system.
Given the context of "Lindemayer systems are a prior formalism" and the hypothesis that it is D0L", the generation 1 would look like the 80x245 in .pgm

So in general M remains miu while the Grid expands from 5x5 to 20x35 then to 80x245
Description?
Would it be possible to describe the full language in human language? --Yayimhere2(school) (talk) 14:07, 4 July 2026 (UTC)
- Essentially Dafne is a result of asking "what happens if you take the SATOR square and turn it into a Vedic square?"
At some point there was a realization that this relates to Linenmayer systems, however there wasn't a single L-system rule to pin it down. I did end up providing a few L-systems, however, just based on the grammar. A stochastic system could be constructed by exploiting the self-modifying method for instance.
In general it is a bit unfair to have to explain an esolang that no-one else really contributed to, but hopefully my descriptions thus far have come off human and made sense. Do you have more questions? Miui (talk) 15:26, 4 July 2026 (UTC)