UIUANIN

UIUANIN

Kyoto, Japan

Talk on Uiua given in at the 2025 Artificial Life conference in Kyoto. Uiua is a glyph based array language written in Rust.
UIUANINNoah SyrkisOctober 6, 20251 |Motivation2 |Glyphs3 |The Stack4 |Examples1 |MotivationFor legacy reasons, ALife research tend to use Python. This talk presents an alternative: Uiua, a stack based array language written in Rust, by Kai Schmidt. Uiua’s array orientedness and visual compact­ness makes it a winner (for me), and it’s already been used for neuroevolutiuon(lambda x, y, z: x + y + z)+ +PythonUiuaListing 1: Two implementations of an anonymous function that adds three numbers2 of 92 |GlyphsUiua uses special symbols (glyphs). In the context of LLMs, glyph-based languages could become very efficient since the same code can be generated with much fewer tokens. A few common glyphs are:.:ₙ⚂⇡⧻⌊⌵≡duplicateflippowerrandomrangeshapefloorabsmapListing 2: A few common glyphs3 of 92 |GlyphsSome glyphs are more high-level. To visualize points, you could use ⍜ (under), which transforms, applies a function, and undoes transform, on an 𝑛×𝑛 array of zeros, by selecting the index of the particles in the array (transform), adding 1 (function), and putting the values back in the array.∧ fold⍜ under≡ rowsApply a function to aggregate arraysOperate on a transformed ar­ray, then undo transformApply a function to each row of an array∧+ [1 2 3] 10 → 16⍜+(×2) 1 5 → 11≡∧+ [1_2 4_5] 0 → 3_9Listing 3: Glyphs with descriptions and examples4 of 93 |The Stack▶Functions pop and push values on the stack▶Functions apply seamlessly across array dims 1 2 3 # stack: 1 2 3 + + # stack: 6 ⇡ # stack: [0 1 2 3 4 5] + 1 # stack: [1 2 3 4 5 6] \+ # stack: [1 3 6 10 15 21] /+ # stack: 565 of 94 |ExamplesALife examples in Uiua include neuroevolution [1], an implementation of Lenia [2], a game engine [3], and boids [4], demonstrating its range from abstract models to interactive systems.6 of 94.1 |RHOSR ← ⁿ:e ¯÷ ×2 ⁿ2 : √ /+ ⁿ2 ⌵G ← ≡₁R ⌵ - ⌊ ÷ 2 ⊸ ⧻ ⇡ ⊟ .D ← ÷ ⊸⍥/↥ 2 √ ⌵ - ⊸ ↻ 0_1Figure 1: Two works from RHOS7 of 94.2 |SortsolFigure 2: 200 steps of a simple particle simulation with particles moving randomlyInit ← + ÷ 2 W × S - 0.5 gen N_2Step ← + × S -0.5 gen N_2Draw ← ⍜(⊡|+1) ↥ 0 ↧ -1 W ⌊ : × 0 °△ W_W8 of 9References[1]Kai Schmidt, “Evonet: Basic Evolutionary Neural Network in Uiua.” [Online]. Available: https://github.com/kaikalii/evonet[2]donstenzel, “Lenia: Time, Space & State Continuous Cellular Automaton in Uiua.” [Online]. Available: https://github.com/donstenzel/lenia[3]M. Cat, Omnikar, and Ronondex2009, “Iris: A Simple Game Library around Rayua.” [Online]. Available: https://github.com/Marcos-cat/iris[4]marblecoma, “Boids in Uiua Using Iris Library.” [Online]. Available: https://github.com/marblecoma/boids-uiua