<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Gioser Journal</title>
  <link>https://gioser.net/en/blog/</link>
  <atom:link href="https://gioser.net/en/blog/feed.xml" rel="self" type="application/rss+xml"/>
  <description>What gets built in the workshop, told with the numbers in plain sight.</description>
  <language>en</language>
  <lastBuildDate>Fri, 16 Oct 2026 09:00:00 -0500</lastBuildDate>
  <item>
    <title>Tawasuyu: a sovereign system end to end, built on the Andean chakana</title>
    <link>https://gioser.net/en/blog/tawasuyu-sovereign-computer/</link>
    <guid isPermaLink="true">https://gioser.net/en/blog/tawasuyu-sovereign-computer/</guid>
    <pubDate>Fri, 16 Oct 2026 09:00:00 -0500</pubDate>
    <dc:creator>Gioser Editorial</dc:creator>
    <category>tawasuyu · Sovereignty</category>
    <description>tawasuyu, the Rust software suite that seeks sovereignty in every layer of the computer —from the operating system to identity— and is laid out like the chakana: four regions, a bridge at the centre and applications that are Andean institutions written as software.</description>
    <enclosure url="https://gioser.net/blog/medios/tawasuyu-escritorio.jpg" type="image/jpeg" length="100132"/>
    <content:encoded><![CDATA[<p class="lede">You turn on your computer and, before you see anything, others have already decided for you: what boots, who draws the screen, which engine opens web pages, where your files live and who can shut down the account that says who you are. <strong>tawasuyu</strong> was born from an uncomfortable question: <em>what would it take for every one of those layers to be yours?</em> The answer takes more than twelve hundred pieces of software. And its blueprint doesn’t come from Silicon Valley: it comes from the Andes.</p>

<figure class="foto">
  <img src="https://gioser.net/blog/medios/tawasuyu-andes.jpg" alt="Two stone crosses on an Andean summit at dawn: on the left takana’s, made of ochre bricks; on the right tawasuyu’s chakana, in rainbow colours with a hole of light at its centre" width="1600" height="900" loading="eager">
  <figcaption>Illustration: the marks of takana and tawasuyu carved in stone before a snow-capped peak.</figcaption>
</figure>

<h2>What tawasuyu is</h2>

<p>tawasuyu is a vertical software suite written in Rust. Among its pieces there is an <strong>operating system</strong> that boots straight on the hardware, with no Linux underneath; its own <strong>graphics engine</strong>, Llimphi; a <strong>desktop</strong> with its window manager; a <strong>web browser</strong> with its own engine, without Chromium or WebKit; a <strong>writing</strong> environment where the same text lives in several languages and tones; an <strong>ERP</strong>, an <strong>astronomy</strong> engine, <strong>mail</strong>, <strong>music</strong>, <strong>video</strong> and a <strong>medical record</strong>.</p>

<p>The odd part isn’t the quantity. It’s that none of it rents its foundations: everything rests on the same format, the same identity and the same engine that draws, and none of them has an owner other than you.</p>

<h2>Sovereignty, layer by layer</h2>

<p>The word has been worn thin by speeches, so it’s worth bringing it down to something that can be checked. On an ordinary computer, every layer has an owner who isn’t the person using it. In tawasuyu, each one has a piece of its own that replaces it:</p>

<div class="tabla" role="region" aria-label="Who rules each layer, and what tawasuyu puts in its place" tabindex="0">
<table>
  <thead><tr><th scope="col">Layer</th><th scope="col">Who usually rules</th><th scope="col">In tawasuyu</th></tr></thead>
  <tbody>
    <tr><td>Booting</td><td>someone else’s kernel and system</td><td><span class="pieza">wawa</span>, an operating system of its own, and <span class="pieza">arje</span>, the first process (init)</td></tr>
    <tr><td>The pixel</td><td>Qt, GTK, Flutter or a hidden browser</td><td><span class="pieza">Llimphi</span>, a graphics engine that draws every button in the suite</td></tr>
    <tr><td>The web</td><td>Chromium or WebKit, almost always</td><td><span class="pieza">puriy</span>, a browser with its own JavaScript engine</td></tr>
    <tr><td>Who you are</td><td>an account a third party gives you and can take away</td><td><span class="pieza">agora</span>: your identity is a key you generate yourself, on your own machine</td></tr>
    <tr><td>Your files</td><td>a central index that can be seized or censored</td><td>every file is named by its content: the name is the proof it wasn’t altered</td></tr>
    <tr><td>The network</td><td>servers in the middle</td><td>peer-to-peer connections; the system of its own also speaks a network protocol of its own</td></tr>
    <tr><td>The history of the code</td><td>a third-party platform</td><td><span class="pieza">minga</span>, a version control system of its own, and the code on the author’s own server</td></tr>
    <tr><td>Foreign formats</td><td>the vendor’s program</td><td>46 declared bridges —PDF, Excel, Word, Photoshop, torrent…— that read and write without getting into the core</td></tr>
  </tbody>
</table>
</div>

<p>And the rule behind the table is a single one: <strong>what comes from outside enters through a bridge, never into the centre</strong>. A PDF opens, a spreadsheet gets imported, a website gets visited; but inside, everything works in the native format, and if tomorrow the maker of that format disappears, what is yours stays readable.</p>

<h2>Survival doesn’t belong to the individual alone</h2>

<p>So far, this could be the dream of someone who wants to lock themselves inside their machine. But individual sovereignty has a well-known limit: one person alone doesn’t sustain a road, a record or a decision. And that is where the project looks to the Andes.</p>

<p>For thousands of years, Andean peoples sustained roads that crossed a continent and terraces that still yield harvests, without money or alphabetic writing. What sustained them wasn’t a technical device but a way of organizing: <em>ayni</em>, exact and measurable reciprocity; <em>minka</em>, voluntary work for the common good; and the <em>ayllu</em>, <strong>the sovereign community as the unit</strong>, instead of the isolated individual.</p>

<p>tawasuyu translates that idea into cryptography. A file named by its content has no central index anyone can seize. An identity that is a key doesn’t need a master registry to authorize it or cancel it. And a community that decides by a <strong>signature threshold</strong> —so many of its members have to agree— doesn’t depend on who owns the server. It’s the same premise, written this time in Rust.</p>

<h2>Four regions, one cycle</h2>

<p>The name is the blueprint. <em>Tawa</em> is four in Quechua and <em>suyu</em> is region: tawasuyu means <strong>four regions</strong>. The whole repository is split in four, and each part corresponds to a phase of what happens to information: it is perceived, known, acted upon and sustained.</p>

<div class="tabla" role="region" aria-label="The four regions of tawasuyu" tabindex="0">
<table>
  <thead><tr><th scope="col">Region</th><th scope="col">Phase</th><th scope="col">What lives there</th></tr></thead>
  <tbody>
    <tr><td><span class="pieza">00_unanchay</span></td><td class="propio">Perceive</td><td>What picks up signals: the browser, notes, language, writing, news comparison.</td></tr>
    <tr><td><span class="pieza">01_yachay</span></td><td class="propio">Know</td><td>What models and computes: astronomy, simulation, physics, the ERP, the medical record, claim verification.</td></tr>
    <tr><td><span class="pieza">02_ruway</span></td><td class="propio">Do</td><td>What acts: the graphics engine, the desktop, the terminal, music, video, mail, games.</td></tr>
    <tr><td><span class="pieza">03_ukupacha</span></td><td class="propio">Root</td><td>What holds everything up: the operating system, booting, identity, the network.</td></tr>
  </tbody>
</table>
</div>

<p><em>Yachay</em> is knowing and <em>ruway</em> is doing. <em>Unanchay</em> is related to the signal and to noticing it. <em>Uku pacha</em> is, in the Andean worldview, the inner world, the one below: the place of roots. It’s no accident that sovereignty starts there: whoever doesn’t own the root owns nothing of what grows on top of it.</p>

<p>And it isn’t an administrative division. Moving a program to another region <strong>changes what it is</strong>. tawasuyu has two programs that work with news: <em>watuy</em> harvests claims and puts them side by side, and lives in <em>perceive</em>; <em>iniy</em> (in Quechua, to believe) verifies them, and lives in <em>know</em>. Collecting a claim isn’t taking it as true, and the code doesn’t let the two be confused.</p>

<h2>The chakana: everything goes through the bridge</h2>
<figure class="foto">
  <img src="https://gioser.net/blog/medios/tawasuyu-escritorio.jpg" alt="The tawasuyu desktop: the colourful chakana with its circular hole at the centre of the screen, crossed by two axes of light; on the left the workspaces and applications, on the right the workshop panel with the list of compiled programs" width="1600" height="900" loading="lazy">
  <figcaption>The tawasuyu desktop as it looks today on the author’s machine: the chakana at the centre, and the suite’s panels on either side.</figcaption>
</figure>

<p>The logo is a chakana, the Andean stepped cross with a circular hole in its centre. It has been carved in stone since Chavín and Tiwanaku, and it still appears in textiles someone weaves today. Its name comes from <em>chaka</em>, <strong>bridge</strong>.</p>

<p>In tawasuyu the chakana isn’t an ornament: it’s the diagram. The four regions are its four arms, and at the centre is the bridge. The rule it draws is strict: <strong>nothing communicates by skipping ahead; everything goes through the middle</strong>. It’s the same rule as foreign formats, seen from above: whatever crosses, crosses at a declared place, where it can be looked at.</p>

<h2>Apps woven together like an ayllu</h2>

<p>tawasuyu’s applications aren’t conceived as standalone programs. The project’s documentation says it in one line: they are <strong>Andean institutions written as software</strong>. And almost all of them do the same thing to a different institution: they remove the middleman.</p>

<div class="tabla" role="region" aria-label="Andean institutions and what they do in tawasuyu" tabindex="0">
<table>
  <thead><tr><th scope="col">Name</th><th scope="col">The tradition</th><th scope="col">In tawasuyu</th></tr></thead>
  <tbody>
    <tr><td><span class="pieza">ayni</span></td><td>reciprocity: what I give you today comes back when it’s my turn</td><td>credit among acquaintances, interest-free, with no bank or server</td></tr>
    <tr><td><span class="pieza">mit'a</span></td><td>work in shifts for the common good</td><td>attested community work turns into reciprocal credit</td></tr>
    <tr><td><span class="pieza">minga</span></td><td>everyone’s voluntary communal work</td><td>peer-to-peer collaboration and its own version control</td></tr>
    <tr><td><span class="pieza">tantanakuy</span></td><td>to gather</td><td>the assembly: call, quorum, vote and signed minutes, with no platform hosting it</td></tr>
    <tr><td><span class="pieza">khipu</span></td><td>the knotted cords that kept memory</td><td>notes that reinforce each other, or fade, kept on your own machine</td></tr>
    <tr><td><span class="pieza">siqi</span></td><td>the lines that joined each place to the centre</td><td>automations: every rule is a piece of data that can be signed</td></tr>
    <tr><td><span class="pieza">tampu</span></td><td>the storehouses along the road</td><td>a community’s shared objects</td></tr>
    <tr><td><span class="pieza">chasqui</span></td><td>the relay messenger</td><td>the one that carries data from one program to another</td></tr>
  </tbody>
</table>
</div>

<p>And they are woven together as in an ayllu: work recorded in <em>tampu</em> becomes credit in <em>ayni</em>, the <em>tantanakuy</em> assembly signs its minutes as a community, and those minutes go into a public record. None of those steps needs to ask a company for permission.</p>

<h2>Agora and the seal of the ayllu</h2>

<p>That idea has its own place in <strong>agora</strong>, the plaza of identity. A community has its <strong>constitution</strong> and its own <strong>seal</strong>, which is only stamped when the members it set itself have signed. The person is sovereign and the community can sign as one, without anyone signing on someone else’s behalf. Agora deserves an article of its own, and it will get one.</p>

<h2>A tribute</h2>

<p>When the conquest banned the assemblies and persecuted the language, the Andean way of organizing was not lost: Quechua is still spoken and the stepped cross is still woven. In its own way, it is the longest proof of sovereignty there is: what a community sustains outlives whoever tried to take it away.</p>

<p>tawasuyu is a <strong>tribute to that architecture</strong>. It isn’t a flag: Quechua is the language of many peoples and crosses borders, and the project speaks on behalf of none of them. It learns from them. It takes the idea that resisted the longest —that what endures isn’t what an owner keeps on their server, but what a community sustains— and writes it in the place where today it’s decided who rules: software.</p>

<aside class="ficha" aria-labelledby="ficha-tawasuyu">
  <h2 id="ficha-tawasuyu">What we measured</h2>
  <dl>
    <div><dt>Software pieces (crates) in the workspace</dt><dd>1,210</dd></div>
    <div><dt>Domain folders: perceive · know · do · root</dt><dd>7 · 11 · 37 · 8</dd></div>
    <div><dt>Shared core folders</dt><dd>104</dd></div>
    <div><dt>Bridges to foreign formats</dt><dd>46</dd></div>
    <div><dt>Application families</dt><dd>4</dd></div>
    <div><dt>Language</dt><dd>Rust</dd></div>
  </dl>
  <p>Count taken on the repository on October 16, 2026. The operating system of its own is built separately and isn’t included in the number of pieces.</p>
</aside>

<h2>What isn’t there yet</h2>

<ul>
  <li><strong>The operating system of its own doesn’t replace Linux in daily use yet.</strong> Today tawasuyu’s desktop runs on a Linux kernel and its drivers; the root of its own exists and boots, but it doesn’t carry everything yet.</li>
  <li><strong>The browser of its own doesn’t open the whole web yet.</strong> Its JavaScript engine passes 13.1% of the language’s official test suite (Test262), and the browser 22.1% of the web platform subtests (WPT) already run against it. It grows every week, and the numbers are published as they come out.</li>
  <li><strong>The hardware isn’t sovereign.</strong> The processor, the graphics card and their firmware still belong to whoever made them. tawasuyu starts where the silicon ends.</li>
  <li><strong>The names take some getting used to.</strong> A newcomer doesn’t know what <em>nakui</em> or <em>kamachiq</em> is without reading its description, and the Quechua on some screens hasn’t been reviewed by a speaker yet. Reviews are welcome.</li>
</ul>

<h2>How to see it</h2>

<p>The code is at <a href="https://git.tawasuyu.net/tawasuyu/tawasuyu">git.tawasuyu.net</a> —on a server of its own, not on someone else’s platform— and the full map, at <a href="https://tawasuyu.net">tawasuyu.net</a>. To check what this article says, just open the root of the repository: the four regions are the first thing you see.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Qt, GTK, Flutter, Electron? No: a graphics engine from scratch, entirely in Rust</title>
    <link>https://gioser.net/en/blog/llimphi-graphics-engine-from-scratch/</link>
    <guid isPermaLink="true">https://gioser.net/en/blog/llimphi-graphics-engine-from-scratch/</guid>
    <pubDate>Mon, 12 Oct 2026 19:00:00 -0500</pubDate>
    <dc:creator>Gioser Editorial</dc:creator>
    <category>tawasuyu · Llimphi</category>
    <description>Llimphi, tawasuyu’s graphics engine written in Rust: why it doesn’t use Qt, GTK or Flutter, how it paints along four different paths and what was measured.</description>
    <enclosure url="https://gioser.net/blog/medios/llimphi-portada.jpg" type="image/jpeg" length="42477"/>
    <content:encoded><![CDATA[<p class="lede">Every time you open an application, something has to draw every button, every letter and every window on your screen, dozens of times per second. That something is a graphics engine, and almost nobody builds their own: most of the world’s software is painted with Qt, GTK, Flutter or Electron. Tawasuyu, the software suite with Quechua names being written in the Gioser workshop, chose not to borrow one.</p>

<p>Its engine is called <strong>Llimphi</strong>, which in Quechua means <em>color</em>, <em>shine</em>, <em>pigment</em>. It draws the whole suite: the desktop, the editor, the video player, the control panels and the interface of the project’s own operating system. Today <strong>276 pieces of the suite</strong> are painted with Llimphi.</p>

<figure class="video">
  <video src="https://gioser.net/blog/medios/llimphi-showreel.mp4" poster="https://gioser.net/blog/medios/llimphi-poster.jpg" width="1600" height="900" autoplay muted loop playsinline preload="metadata" aria-label="A terminal where llimphi is typed turns into a glass text field; on sending it, controls unfold, the page slides into the cosmos sky, into a first-person corridor that ends at a fountain, and through the water into a flight over an infinite voxel world under a snowy peak, where a little figure celebrates while a hand writes llimphi"></video>
  <figcaption>Fifteen and a half seconds of Llimphi. Everything on screen is drawn by the engine, frame by frame: the controls, the cosmos sky, the supay corridor, the infinite voxel world and the hand.</figcaption>
</figure>

<h2>Why not use one that already exists</h2>

<p>Until May 2026, tawasuyu was drawn with GPUI, the engine behind the Zed editor. On May 26 it was removed entirely, and not on a whim: the project has its own operating system, <em>wawa</em>, which boots straight on the hardware, with no Linux underneath. No existing engine knows how to draw there.</p>

<p>Qt, GTK and Flutter take a conventional operating system for granted, with its window manager, its installed fonts and its memory management. Llimphi was designed from day one to paint both in a desktop window and in the video memory of a kernel that has just powered on. That requirement forced it to be written from scratch.</p>

<h2>What “from scratch” means</h2>

<p>It is worth being precise, because it is the question every programmer asks. Llimphi did not reinvent every piece. Just as Flutter relies on Skia and GTK on Cairo, Llimphi uses four free projects from the Rust community for the most specialized jobs. Everything else is its own: the way an application describes its screen, how it reacts to each click, the components and the paths that lead to the pixels.</p>

<div class="tabla" role="region" aria-label="What is its own and what comes from the community" tabindex="0">
<table>
  <thead><tr><th scope="col">Job</th><th scope="col">Who does it</th></tr></thead>
  <tbody>
    <tr><td>Talking to the graphics card</td><td><span class="pieza">wgpu</span> · community</td></tr>
    <tr><td>Drawing curves and fills with antialiasing</td><td><span class="pieza">vello</span> · community</td></tr>
    <tr><td>Working out where each box goes (flexbox and grid)</td><td><span class="pieza">taffy</span> · community</td></tr>
    <tr><td>Shaping text: Arabic, Chinese, emoji, ligatures</td><td><span class="pieza">parley</span> · community</td></tr>
    <tr><td>The life cycle of each application</td><td class="propio">Llimphi</td></tr>
    <tr><td>Components, themes, animation, accessibility</td><td class="propio">Llimphi</td></tr>
    <tr><td>Painting without a graphics card, inside the kernel</td><td class="propio">Llimphi</td></tr>
    <tr><td>Isolating an application and painting its drawing from outside</td><td class="propio">Llimphi</td></tr>
  </tbody>
</table>
</div>

<p>The four community pieces are written in Rust too. That is why the headline says “entirely in Rust”, and stands by it.</p>

<h2>How a Llimphi application thinks</h2>

<p>Llimphi follows the Elm architecture, named after a language known for applications that almost never crash. The idea is simple: the application does not modify the screen, it describes it. Every time something happens, the engine goes through six steps:</p>

<ol class="bucle">
  <li><span>input</span>A click, a key or a gesture arrives.</li>
  <li><span>update</span>The application computes its new state.</li>
  <li><span>view</span>It describes how it should look in that state.</li>
  <li><span>layout</span>The engine works out the position of each box.</li>
  <li><span>raster</span>It turns that description into pixels.</li>
  <li><span>present</span>It shows the finished frame.</li>
</ol>

<p>Since nothing touches the screen directly, no two parts of the program fight over the same button. It is the same reason this style became popular on the web with React, except here it runs natively, with no browser in between.</p>

<h2>One brush, four paths to your screen</h2>

<p>The most unusual part of Llimphi is that the same drawing can reach the screen by completely different paths, depending on where the application runs. “Looks about the same” was not good enough: each path was put side by side with the others and the pixels were counted.</p>

<div class="caminos">
  <section>
    <h3>With a graphics card</h3>
    <p>The everyday path on the desktop.</p>
    <p class="medida">It is the reference everything else is measured against.</p>
  </section>
  <section>
    <h3>CPU only</h3>
    <p>The one the wawa kernel uses, since it has no video driver.</p>
    <p class="medida">Fills and layers identical bit for bit. Accented text may differ, because the kernel only ships three fonts.</p>
  </section>
  <section>
    <h3>By message</h3>
    <p>An isolated application doesn’t touch the screen: it sends its drawing as a message and the system paints it on its behalf.</p>
    <p class="medida">0 pixels of difference across the four test scenes.</p>
  </section>
  <section>
    <h3>For phones</h3>
    <p>A path that works on mobile graphics chips without general-purpose compute, such as the Mali-G57.</p>
    <p class="medida">No pixel differs by more than 1/255 out of 19,200.</p>
  </section>
</div>

<p>The “by message” path coming out with zero difference has a practical consequence: an application can live locked away, with no permission at all to touch the screen, and still look exactly the same. Security that costs nothing in appearance.</p>

<h2>What it already ships</h2>

<ul class="trae">
  <li><strong>Close to eighty components</strong>: buttons, tables, text editors with multiple cursors, node graphs, panel splitters, calendars and more.</li>
  <li><strong>Eleven modules</strong> that combine components into complete application pieces.</li>
  <li><strong>Real text</strong>: right-to-left writing, Chinese characters, emoji, ligatures and input methods for Asian languages.</li>
  <li><strong>Accessibility</strong>: every element can declare what it is and what it is called, and the tests query it the way a screen reader would.</li>
  <li><strong>Image-based tests</strong>: a screen is compared with its approved version, and any unexpected change makes the test fail.</li>
  <li><strong>A 3D voxel engine</strong> that mounts inside the same interface, as just another component.</li>
</ul>

<aside class="ficha" aria-labelledby="ficha-titulo">
  <h2 id="ficha-titulo">We measured it</h2>
  <dl>
    <div><dt>Software pieces (crates)</dt><dd>150</dd></div>
    <div><dt>Lines of Rust, with examples and tests</dt><dd>239,173</dd></div>
    <div><dt>Tawasuyu pieces that draw with Llimphi</dt><dd>276</dd></div>
    <div><dt>Ready-to-use components</dt><dd>79</dd></div>
    <div><dt>Difference between painting directly and by message</dt><dd>0 px</dd></div>
    <div><dt>License</dt><dd>MIT or Apache-2.0</dd></div>
  </dl>
  <p>Counted on the repository on October 12, 2026.</p>
</aside>

<h2>What it doesn’t do yet</h2>

<p>An engine that promises too much loses the trust of whoever tries it, so it is worth saying what is missing too:</p>

<ul>
  <li>The phone path has been tested on real hardware, but <strong>no published application uses it yet</strong>. The current Android builds take another path that doesn’t work on every chip.</li>
  <li>Outside its three built-in fonts, text may look different in the kernel and on the desktop. The cause is known: with no operating system underneath, there is nowhere to get more fonts from.</li>
  <li>Part of Llimphi is already published on <a href="https://crates.io/crates/llimphi">crates.io</a>, Rust’s official registry, but the release is incomplete and some recent pieces haven’t been uploaded yet.</li>
</ul>

<h2>How to try it</h2>

<p>For Rust programmers, the way in is a single package:</p>

<pre><code>cargo add llimphi</code></pre>

<p>The package bundles the core, the themes and the 3D engine. For the rest, the best demonstration is tawasuyu itself: every window in the suite is a Llimphi application.</p>
]]></content:encoded>
  </item>
</channel>
</rss>
