{"id":206,"date":"2013-11-27T20:04:06","date_gmt":"2013-11-27T20:04:06","guid":{"rendered":"http:\/\/thinkcolorful.org\/?page_id=206"},"modified":"2024-09-09T18:04:29","modified_gmt":"2024-09-09T18:04:29","slug":"blog","status":"publish","type":"page","link":"https:\/\/thinkcolorful.org\/?page_id=206","title":{"rendered":"Blog"},"content":{"rendered":"<ul class=\"wp-block-latest-posts__list wp-block-latest-posts\"><li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_002-150x150.jpeg\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_002-150x150.jpeg 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_002-200x200.jpeg 200w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thinkcolorful.org\/?p=1398\">Wind Song: Nahuatl Glyphs and Community Mesh Networks<\/a><div class=\"wp-block-latest-posts__post-full-content\"><!-- wp:paragraph -->\n<p>The Seneca called this place Ja\u00f6deog\u00eb &#8211; &#8220;between two rivers&#8221; or <em>Dayaogeh<\/em> &#8211; &#8220;Beautiful Place of Three Rivers.&#8221; When I designed a custom case for my Meshtastic device, I wanted to honor that same geography. But instead of translating, I created something new: a visual sentence in Nahuatl that speaks to both my decolonization journey and what <a href=\"https:\/\/protomesh.societyofhackers.com\/\">Prototype PGH is building<\/a>.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">What Is Meshtastic?<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:columns {\"verticalAlignment\":null} -->\n<div class=\"wp-block-columns\"><!-- wp:column {\"verticalAlignment\":\"top\",\"width\":\"33.33%\"} -->\n<div class=\"wp-block-column is-vertically-aligned-top\" style=\"flex-basis:33.33%\"><!-- wp:image {\"id\":1402,\"sizeSlug\":\"large\",\"linkDestination\":\"media\",\"align\":\"right\"} -->\n<figure class=\"wp-block-image alignright size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"293\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-510x293.jpeg\" alt=\"\" class=\"wp-image-1402\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-510x293.jpeg 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-300x172.jpeg 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-768x441.jpeg 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-1536x881.jpeg 1536w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-520x298.jpeg 520w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1-940x539.jpeg 940w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-101413-1.jpeg 2048w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image --><\/div>\n<!-- \/wp:column -->\n\n<!-- wp:column {\"width\":\"66.66%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:66.66%\"><!-- wp:paragraph -->\n<p><a href=\"https:\/\/meshtastic.org\/\">Meshtastic<\/a> is a community-run mesh network\u2014a way for people to communicate without relying on cell towers or the internet. Nodes (devices like mine) relay messages to each other across distance. It&#8217;s infrastructure we own and control. In a natural disaster, when cellular networks fail, mesh networks keep communities connected. I created a module called <a href=\"https:\/\/github.com\/ephemeralwaves\/firmware\/blob\/LoRabot\/LoRaBotRequirement.md\">LoRaBot<\/a> which changes faces when different things happen on the network and wanted to make a custom case for it.<\/p>\n<!-- \/wp:paragraph --><\/div>\n<!-- \/wp:column --><\/div>\n<!-- \/wp:columns -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Case: Form Meets Function<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I started with an existing <a href=\"https:\/\/makerworld.com\/en\/models\/533197-heltec-v3-case-meshtastic-base-station-powered?from=search#profileId-928274\">Heltec v3 case design<\/a> from MakerWorld, then modified it. I needed more internal space for a large battery\u2014essential for a reliable mesh node\u2014so I redesigned the interior while keeping the external profile. The extra space on the front became room for Nahuatl expression. <\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Glyph Sentence<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:image {\"id\":1399,\"sizeSlug\":\"large\",\"linkDestination\":\"media\"} -->\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"383\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-510x383.jpeg\" alt=\"\" class=\"wp-image-1399\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-510x383.jpeg 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-300x225.jpeg 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-768x576.jpeg 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-1536x1152.jpeg 1536w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-520x390.jpeg 520w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003-940x705.jpeg 940w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640_003.jpeg 2048w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><strong>\u012acalli \u0113yi \u0101tl, \u012bpan eh\u0113catl in cu\u012bcatl<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em>The house of three waters, the song on the wind.<\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Breaking It Down<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>\u012acalli \u0113yi \u0101tl<\/strong> (The house of three waters)<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>\u012acalli<\/strong>: house.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\u0113yi \u0101tl<\/strong>: Three waters. Pittsburgh. Dayaogeh. The geography that defines us.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>\u012bpan eh\u0113catl in cu\u012bcatl<\/strong> (The song on the wind)<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>in cu\u012bcatl<\/strong>: Song, voice, communication. <\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>\u012bpan eh\u0113catl<\/strong>: On the wind. <\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Together: The voice doesn&#8217;t stay contained. It travels.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Glyph Placement as Spatial Grammar<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:image {\"id\":1400,\"sizeSlug\":\"large\",\"linkDestination\":\"media\"} -->\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"383\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-510x383.jpeg\" alt=\"\" class=\"wp-image-1400\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-510x383.jpeg 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-300x225.jpeg 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-768x576.jpeg 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-1536x1152.jpeg 1536w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-520x390.jpeg 520w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640-940x705.jpeg 940w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2026\/03\/signal-2026-03-20-093640.jpeg 2048w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>Nahuatl writing isn&#8217;t just about individual symbols\u2014it&#8217;s about <em>spatial relationships<\/em>. How glyphs sit relative to each other conveys meaning. I used this principle to build the case layout:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>The Geography: Three Rivers (Atl)<\/strong> On the far left sits the three-river glyph\u2014three water streams converging into one point. It anchors the entire composition, grounding the device in Pittsburgh&#8217;s actual geography.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>The House (<a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/calli-mdz20r\">Calli<\/a>)<\/strong> Below the screen sits the house glyph. In Nahuatl spatial grammar, what comes below is foundational, supporting. The calli is the structure, the grounded node.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>The Speaker: Screen as Voice<\/strong> The screen displays an animated face\u2014this is the <em>voice emerging<\/em>. It sits directly <em>on top of<\/em> the calli, visually showing how the house generates communication. The face becomes the speaker.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>The Song (<a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/cuicatl-mdz43r\">Cuicatl<\/a>)<\/strong> Above the screen, the cuicatl glyph appears <em>above the speaker&#8217;s head<\/em>\u2014the song emerging from speech. In Nahuatl codices, glyphs placed above or emanating from a figure show what that figure produces or emanates.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>The Wind (<a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/ehecatl-tr26r\">Ehecatl<\/a>, <\/strong>the <a href=\"https:\/\/symbolikon.com\/downloads\/ehecatl-aztec\/\">glyph I used<\/a> more stylized<strong>) <\/strong>The wind glyph sits <em>beneath and supporting<\/em> the cuicatl. This recreates the Nahuatl principle of directional flow: the song rides <em>on<\/em> the wind. The spatial relationship shows causality\u2014not just two separate concepts, but one carrying the other.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The reading becomes multidirectional and relational, not just left-to-right: <strong>Foundation (rivers) \u2192 Structure (house) \u2192 Voice (face) \u2192 Expression (song) \u2192 Transmission (wind).<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>This was my attempt to mirror how Nahuatl glyphs worked in codices\u2014meaning emerged from <em>where things were placed relative to each other<\/em>, not just what they looked like individually.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Building New Words<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>How do you represent a radio signal? An invisible mesh network?<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>For LoRa communications I used Ehecatl Cuicatl (Wind-Song). I paired <strong>ehecatl<\/strong> (wind)\u2014the invisible force carrying what we cannot see\u2014with <strong>cuicatl<\/strong> (song). In Nahua culture, <em>cuicatl<\/em> is far more than music: it&#8217;s intentional, sacred utterance that carries knowledge, history, and resistance. So <em>ehecatl cuicatl<\/em> (wind-song) means not just invisible transmission, but <em>meaningful knowledge traveling<\/em>.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>For Pittsburgh itself, I didn&#8217;t create a new glyph. I adapted the <em>atl<\/em> symbol: three separate water streams converging into one point. This is both a traditional symbol and a neologism\u2014honoring Nahuatl visual grammar while extending it to document <em>this place<\/em>.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">What This Means<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Creating neologisms for a language marginalized by colonization is my small act of reclamation. I want to show that this language lives, it describes my world now and I build its future.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The glyphs on my case tell this story: A house speaks. Its song travels on wind. It reaches others. They reach back. We build networks. We organize ourselves. We care for each other.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph --><\/div><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2-200x200.png 200w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thinkcolorful.org\/?p=1373\">Mochiuhco Timonelhuah: Beyond the Left Brain, Decolonizing Through Nahuatl<\/a><div class=\"wp-block-latest-posts__post-full-content\"><!-- wp:paragraph -->\n<p>I grew up knowing my Spanish side\u2014the stories, the language, the lineage preserved and passed down. But my Indigenous roots, remained largely silent. The only inklings would be comments about my relatives complexions. Like so many descendants of colonization, I inherited an asymmetry: one ancestry loud and documented, the other severed from me by deliberate erasure. This poem is part of my process of decolonizing, of reconnecting.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nahuatl isn&#8217;t a dead language\u2014about 1.7 million people speak it today across Mexico. It&#8217;s alive, evolving, thriving in communities that never stopped speaking it. My disconnection isn&#8217;t because the language or culture disappeared; it&#8217;s because colonization severed my family&#8217;s connection to it. Learning Classical Nahuatl, studying the codices, working with these forms of expression\u2014it&#8217;s not about resurrecting something lost. It&#8217;s about reconnecting to something that continues, something I was kept from. It&#8217;s asking: what do my relatives still know? How do Nahua people see the world? What songs are still being sung?<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;ve been working on a piece that brings together language, image, and meaning in ways that connect historical and contemporary Nahua thought. The result is a short poem in Classical Nahuatl paired with a digitally drawn image that speaks to themes of reciprocity, rootedness, and mutual life-giving.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:columns -->\n<div class=\"wp-block-columns\"><!-- wp:column -->\n<div class=\"wp-block-column\"><\/div>\n<!-- \/wp:column --><\/div>\n<!-- \/wp:columns -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Language<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>For the visual piece, I turned to the <a href=\"https:\/\/aztecglyphs.wired-humanities.org\/\">Visual Lexicon of Aztec Hieroglyphs<\/a>, a very helpful resource that catalogs pictographic elements from Aztec codices. I also consulted <a href=\"https:\/\/www.ucpress.edu\/books\/deciphering-aztec-hieroglyphs\/hardcover\">Deciphering Aztec Hieroglyphs: A Guide to Nahuatl Writing<\/a> (and this helpful associated <a href=\"https:\/\/www.youtube.com\/watch?v=2MhDRRaqB8w\">video<\/a> ) which provided broader context and useage of the language.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>From what I have learned, Classical Nahuatl was not written with a full alphabet or syllabary. Instead, the Mexica used a pictorial-semantic writing system, a mix of logograms, pictographs, and occasional <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rebus\">rebus<\/a> elements. This system was not designed to record full spoken Nahuatl word-for-word.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Nahuatl writing was used heavily for record-keeping, naming, calendrics, and state administration, while the deeper cultural knowledge\u2014stories, songs, poems, ritual speeches, and moral teachings\u2014remained rooted in a rich oral tradition.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Working in Classical Nahuatl meant thinking carefully about verb forms and how they carry meaning. The poem uses first-person plural forms throughout &#8211; <em>timonelhuah<\/em> (we are rooted), <em>titlachiah<\/em> (we see), <em>timocuicah<\/em> (we sing)\u2014and crucially, <em>titonechyoliah<\/em> (we give each other life). That final verb uses a reciprocal construction (<em>to-<\/em>) that grammatically encodes the mutual nature of the action. We don&#8217;t just give life; we give life <em>to each other<\/em>. The language does philosophical work.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The poem follows the Nahuatl poetic tradition of <em>difrasismo<\/em>\u2014paired concepts that together create deeper meaning. <em>Tonatiuh-tlalli<\/em> (sun-earth) represents the cosmos. <em>Yolotl-cuicatl<\/em> (heart-song) echoes the famous <em>in xochitl in cuicatl<\/em> (flower and song), the Nahuatl expression for poetry, truth, and beauty.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image {\"id\":1378,\"sizeSlug\":\"full\",\"linkDestination\":\"media\",\"align\":\"center\"} -->\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"374\" height=\"624\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2.png\" alt=\"\" class=\"wp-image-1378\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2.png 374w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/11\/song-2-180x300.png 180w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/><\/a><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Image<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The composition came together as a kind of modern codex page:  <strong><a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/tonatiuh-mdz34r\">Tonatiuh<\/a> (the sun)<\/strong> &#8211; Prominently at the top, radiating life-giving energy. <strong><a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/tlalli-mdz32r\">Tlalli<\/a> (the earth)<\/strong> &#8211; The ground from which the <strong><a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/xochitl-mdz44r\">xochitl<\/a> (flower) <\/strong>showing rootedness in the earth. <strong>The two figures<\/strong> facing each other in reciprocal communion embody &#8220;we give each other life&#8221; &#8211; their gestures suggest exchange, dialogue, and mutual animation. <strong><a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/cuicatl-mdz43r\">Cuicatl<\/a> (song)<\/strong> &#8211; coming from the figures mouths. <strong>The central symbol<\/strong> between them, the <strong><em><a href=\"https:\/\/aztecglyphs.wired-humanities.org\/content\/yollotl-mdz16v\">yollotl<\/a><\/em> (heart, life)<\/strong>.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>What struck me in working with these glyphs is how much they already contain the concepts I was trying to express. The symmetry, the facing figures, the way hands reach toward shared symbols\u2014these visual conventions encode reciprocity and relationship. I wasn&#8217;t inventing a new visual language; I was learning to speak in one that&#8217;s been expressing these ideas for centuries.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Pronounciation<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>In tonatiuh, in tlalli, in yollotl, in cuicatl \u2014 mochiuhco timonelhuah.<\/strong> een toh-NAH-tee-oo, een TLAH-lee, een YOH-lohtl, een KWEE-kahtl \u2014 moh-CHEE-ooh-koh tee-moh-NEL-wah<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>Titlachiah, timocuicah, titonechyoliah.<\/strong> tee-tlah-CHEE-ah, tee-moh-KWEE-kah, tee-toh-neh-choh-LEE-ah<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>Key pronunciation notes:<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>tl<\/strong> = <a href=\"https:\/\/www.youtube.com\/watch?v=JONVfWtmTig\">one single sound, not &#8220;t&#8221; + &#8220;l&#8221; separately<\/a><\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>hu<\/strong> = &#8220;w&#8221; sound (like English &#8220;w&#8221;)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>cu\/qu<\/strong> = &#8220;k&#8221; sound (like English &#8220;k&#8221;)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>ch<\/strong> = like English &#8220;ch&#8221; in &#8220;church&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Stress usually falls on the second-to-last syllable (shown in CAPS)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>All vowels are pure: <strong>a<\/strong>=&#8221;ah&#8221;, <strong>e<\/strong>=&#8221;eh&#8221;, <strong>i<\/strong>=&#8221;ee&#8221;, <strong>o<\/strong>=&#8221;oh&#8221;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Grammer Guide<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>In tonatiuh, in tlalli, in yollotl, in cuicatl \u2014 mochiuhco timonelhuah.<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>in<\/strong> = definite article &#8220;the&#8221; (repeated before each noun for emphasis)<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>tonatiuh<\/strong> = &#8220;sun, the sun deity&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Root: <em>tona-<\/em> &#8220;to shine, to be warm&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-tiuh<\/em> = agentive suffix &#8220;the one who does X&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Literally: &#8220;the one who shines\/warms&#8221;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>tlalli<\/strong> = &#8220;earth, land, soil&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Basic noun root <em>tlal-<\/em> &#8220;earth&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-li<\/em> = absolutive noun ending<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>yollotl<\/strong> = &#8220;heart, life, life-force, soul&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Root: <em>yol-<\/em> &#8220;to live&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-otl<\/em> = noun suffix<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>The heart was the center of life and consciousness in Nahuatl thought<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>cuicatl<\/strong> = &#8220;song, poem&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Root: <em>cuica<\/em> &#8220;to sing&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-tl<\/em> = absolutive noun ending<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Poetry and song were inseparable concepts<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>mochiuhco<\/strong> = &#8220;in everything&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><em>mochi<\/em> = &#8220;all, everything&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-co<\/em> = suffix, locative &#8220;in, at, within&#8221;<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>timonelhuah<\/strong> = &#8220;we are rooted, we root ourselves&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><em>ti-<\/em> = 1st person plural subject &#8220;we&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-mo-<\/em> = reflexive prefix &#8220;ourselves&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>nelhua<\/em> = verb stem &#8220;to root, to take root, to be founded&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-h<\/em> = plural marker (makes it &#8220;we&#8221; not &#8220;you singular&#8221;)<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><strong>Titlachiah, timocuicah, titonechyoliah.<\/strong><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>titlachiah<\/strong> = &#8220;we see, we behold&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><em>ti-<\/em> = 1st person plural &#8220;we&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>tla-<\/em> = indefinite object prefix &#8220;something\/things&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>chia<\/em> or <em>itta<\/em> = verb stem &#8220;to see, to look at&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-h<\/em> = plural marker<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>timocuicah<\/strong> = &#8220;we sing&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><em>ti-<\/em> = 1st person plural &#8220;we&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-mo-<\/em> = reflexive (here it intensifies: &#8220;we sing ourselves&#8221;)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>cuica<\/em> = verb stem &#8220;to sing&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-h<\/em> = plural marker<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>titonechyoliah<\/strong> = &#8220;we give each other life, we animate\/enliven one another&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><em>ti-<\/em> = 1st person plural &#8220;we&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-to-<\/em> = reciprocal prefix &#8220;each other, one another&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-nech-<\/em> or <em>-tech-<\/em> = object marker (in this reciprocal context)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>yolia<\/em> = verb stem &#8220;to live, to give life to, to animate&#8221;<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><em>-h<\/em> = plural marker<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><em>Note: The reciprocal construction with -to- creates the &#8220;each other&#8221; meaning, making this a mutual action<\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Performance<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Nahuatl poetry was never meant to be read silently. <em>Cuicatl<\/em> means both &#8220;poem&#8221; and &#8220;song&#8221;\u2014they were the same thing. This piece is designed to be sung or chanted, ideally by multiple voices in call-and-response or as a layered community chant. The reciprocal grammar demands reciprocal breath.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;m still working out the musical setting, but the rhythm of the language itself suggests a steady drum pattern, the kind that would have been played on a <em><a href=\"https:\/\/www.youtube.com\/watch?v=I7yahW58tQc\">teponaztli<\/a><\/em> or <em><a href=\"https:\/\/www.youtube.com\/watch?v=22xKZaxV5HU\">huehuetl<\/a><\/em>. The repetition of phrases, the building intensity\u2014it all points toward performance as ritual, as shared action rather than individual consumption.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">What I&#8217;m Learning<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This project has taught me that working in Nahuatl isn&#8217;t just about translation\u2014it&#8217;s about letting the language reshape how you think. It&#8217;s agglutinative structure, where prefixes and suffixes build complex meanings, means that concepts like reciprocity and reflexivity aren&#8217;t add-ons; they&#8217;re built into the architecture of expression.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Similarly, working with codex imagery isn&#8217;t about decoration. These visual forms carry philosophical content. When two figures face each other across a shared symbol, that&#8217;s not just an aesthetic choice\u2014it&#8217;s a statement about how life and meaning emerge through relationship.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;m grateful for resources like the Visual Lexicon of Aztec Hieroglyphs website that make this work accessible while maintaining respect for the source material (which is not easy to decipher). And I&#8217;m humbled by how much these old forms still have to teach us about reciprocity, rootedness, and the ways we give each other life.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Decolonizing the Mind, Reclaiming Wholeness<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This work\u2014learning Nahuatl, creating with codex imagery, singing reciprocal songs\u2014is part of a larger practice of decolonization. Not just decolonizing my family history or reclaiming a severed heritage, but decolonizing the very ways I think, create, and relate to the world.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><a href=\"https:\/\/www.whitesupremacyculture.info\/characteristics.html\">White supremacy culture<\/a>, as Tema Okun has documented, operates through characteristics like individualism, binary thinking, perfectionism, and a worship of the written word over other forms of knowing. These aren&#8217;t neutral cultural preferences\u2014they&#8217;re the residue of colonialism, designed to value certain ways of being (linear, individualistic, competitive) while devaluing others (cyclical, communal, reciprocal).<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Western education has trained us to be profoundly left-brain dominant. As neuroscientist <a href=\"https:\/\/youtu.be\/hQaN5w3YwtM?si=D6uVGMfwbhfVGpiM&amp;t=2086\">Dr. Jill Bolte Taylor explains<\/a>, we&#8217;ve elevated the left hemisphere&#8217;s values\u2014individual identity, linear time, hierarchical categorization, acquisition\u2014while suppressing the right hemisphere&#8217;s wisdom about interconnection, presence, and our fundamental unity with all life. The left brain says &#8220;me and mine and I want more.&#8221; The right brain knows &#8220;we are one construct&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Working with Nahuatl reopens those suppressed ways of knowing. The language itself resists left-brain dominance: its agglutinative structure builds meaning through relationship and context rather than rigid categories. The reciprocal verb forms\u2014<em>titonechyoliah<\/em> (we give each other life)\u2014grammatically encode interdependence. You can&#8217;t even conjugate the verb without acknowledging that life doesn&#8217;t flow one direction; it&#8217;s mutual, cyclical, relational.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The codex imagery does similar work. These aren&#8217;t just &#8220;decorative&#8221; or &#8220;symbolic&#8221;\u2014categories that reduce Indigenous visual knowledge to something less-than alphabetic writing. They&#8217;re a complete system of communication that engages spatial thinking, color relationships, and embodied knowledge. Working with these forms exercises parts of my brain and ways of knowing that colonial education systematically atrophies.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>This is what I mean by cultural diaspora and grounding. I&#8217;m not romanticizing a lost past or trying to &#8220;return&#8221; to something. I&#8217;m recognizing that colonization didn&#8217;t just sever my family from Nahuatl\u2014it severed all of us from more holistic, relational ways of being in the world. Learning the language, creating with the glyphs, singing the songs: these practices literally rewire neural pathways, moving me toward the right hemisphere&#8217;s truth that we are interconnected, that I am because we are, that life is mutual animation.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em>In tonatiuh, in tlalli, in yollotl, in cuicatl \u2014 mochiuhco timonelhuah.<\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>We are rooted in everything. Not as isolated individuals extracting resources, but as parts of a whole, giving each other life. That&#8217;s not just poetry\u2014it&#8217;s a different ontology, a different way of being human. And it&#8217;s been here all along, waiting to be remembered.<\/p>\n<!-- \/wp:paragraph --><\/div><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-19-at-10.13.05-AM-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-19-at-10.13.05-AM-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/07\/Screenshot-2025-07-19-at-10.13.05-AM-200x200.png 200w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thinkcolorful.org\/?p=1369\">Empowering Quality Assurance in State\u00a0IT: Introducing the\u00a0Context-Driven QA Guide<\/a><div class=\"wp-block-latest-posts__post-full-content\"><!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Introduction<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>As\u00a0part\u00a0of\u00a0our\u00a0ongoing\u00a0commitment to improving the quality and\u00a0reliability of\u00a0technology\u00a0solutions\u00a0across the\u00a0Commonwealth, I\u2019m excited\u00a0to\u00a0share\u00a0a\u00a0new resource\u00a0developed\u00a0for\u00a0our\u00a0QA\u00a0and project\u00a0teams: the\u00a0<a href=\"https:\/\/thinkcolorful.org\/qaguide.html\">Context-Driven\u00a0QA Guide<\/a>. This guide\u00a0was\u00a0created\u00a0during\u00a0my\u00a0tenure with\u00a0<a href=\"https:\/\/code.oa.pa.gov\/\">CODEPA<\/a>\u00a0(the\u00a0Commonwealth\u00a0Office\u00a0of Digital\u00a0Experience), working\u00a0under\u00a0the\u00a0Office\u00a0of\u00a0Administration. <\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>One of our goals: to\u00a0help\u00a0teams\u00a0across\u00a0the\u00a0State\u00a0integrate\u00a0modern, flexible, and\u00a0effective\u00a0quality\u00a0assurance\u00a0(QA) practices into\u00a0every stage\u00a0of\u00a0IT\u00a0projects.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Why\u00a0a Context-Driven Approach?<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Traditional\u00a0\u201cone-size-fits-all\u201d testing\u00a0strategies\u00a0often\u00a0fall\u00a0short\u00a0in\u00a0the\u00a0complex, varied\u00a0environments\u00a0we\u00a0face\u00a0in\u00a0state\u00a0government. Our\u00a0projects\u00a0serve\u00a0diverse\u00a0stakeholders, operate\u00a0under\u00a0unique\u00a0constraints, and\u00a0must\u00a0adapt\u00a0to\u00a0changing\u00a0requirements and\u00a0technologies. The\u00a0Context-Driven QA Guide\u00a0is\u00a0designed to\u00a0address these\u00a0realities. It provides\u00a0a\u00a0practical\u00a0framework\u00a0that\u00a0empowers\u00a0teams\u00a0to:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Adapt\u00a0testing\u00a0practices\u00a0to the\u00a0specific\u00a0needs\u00a0and\u00a0risks of each project.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Focus\u00a0on\u00a0value\u00a0and\u00a0mission, not\u00a0just\u00a0process compliance.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Leverage both\u00a0human\u00a0expertise and automation\u00a0in\u00a0a\u00a0balanced, thoughtful\u00a0way.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Continuously\u00a0learn and\u00a0improve\u00a0as\u00a0projects evolve.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">What\u2019s\u00a0Inside the\u00a0Guide?<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Purpose &amp; Goals:\u00a0Who\u00a0the\u00a0guide is for and what it aims to\u00a0achieve.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Guiding Principles:\u00a0The\u00a0foundation of context-driven\u00a0testing, emphasizing\u00a0adaptability, skill, and\u00a0mission alignment.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Phases\u00a0of Testing:\u00a0How QA fits\u00a0into\u00a0every stage of\u00a0the project\u00a0lifecycle.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Context\u00a0Analysis:\u00a0Tools\u00a0and\u00a0frameworks\u00a0for understanding\u00a0your project\u2019s unique\u00a0environment\u00a0and risks.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Planning:\u00a0How\u00a0to\u00a0set\u00a0clear objectives, choose\u00a0the right tools, and\u00a0design\u00a0effective tests.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Execution\u00a0&amp; Automation:\u00a0Practical\u00a0advice\u00a0on balancing\u00a0manual\u00a0and automated testing, with\u00a0a focus\u00a0on\u00a0what\u00a0truly\u00a0adds\u00a0value.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Evaluation\u00a0&amp; Reporting:\u00a0How\u00a0to communicate results, report\u00a0bugs effectively, and\u00a0drive continuous\u00a0improvement.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Resources:\u00a0Further reading\u00a0and\u00a0training\u00a0opportunities\u00a0for\u00a0ongoing learning.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Who Should Use\u00a0This Guide?<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This\u00a0guide is\u00a0intended\u00a0for:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>New QA professionals looking\u00a0for a\u00a0practical\u00a0starting\u00a0point.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Project managers\u00a0seeking to integrate\u00a0QA into\u00a0their\u00a0workflows.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Development\u00a0and operations\u00a0teams\u00a0who want\u00a0to collaborate\u00a0more effectively\u00a0on\u00a0quality.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Anyone\u00a0in the\u00a0interested in\u00a0building\u00a0better, more\u00a0reliable\u00a0digital services.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">How to\u00a0Access and\u00a0Use the Guide<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The guide is available\u00a0as\u00a0an<a href=\"https:\/\/thinkcolorful.org\/qaguide.html\">\u00a0interactive web\u00a0resource. <\/a><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Teams\u00a0are\u00a0encouraged\u00a0to:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Reference it\u00a0during project planning\u00a0and\u00a0retrospectives.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Use\u00a0its\u00a0frameworks\u00a0and checklists to\u00a0guide\u00a0test\u00a0strategy discussions.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Share it\u00a0with\u00a0new\u00a0team members\u00a0as\u00a0part\u00a0of onboarding.<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Suggest\u00a0improvements\u00a0and contribute\u00a0to\u00a0its\u00a0evolution.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<!-- \/wp:separator -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">A\u00a0Step\u00a0Forward for\u00a0State IT\u00a0Quality<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This\u00a0initiative reflects our\u00a0belief\u00a0that\u00a0quality is\u00a0everyone\u2019s\u00a0responsibility\u2014and that\u00a0the\u00a0best results\u00a0come from\u00a0empowering\u00a0teams with the\u00a0right tools, knowledge, and\u00a0flexibility. By\u00a0adopting\u00a0a context-driven approach, we\u00a0can deliver\u00a0better\u00a0outcomes\u00a0for the\u00a0people\u00a0and communities we\u00a0serve. Let\u2019s keep\u00a0raising the\u00a0bar for\u00a0quality\u00a0in\u00a0State IT\u2014together.<\/p>\n<!-- \/wp:paragraph --><\/div><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot-300x300.png 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot-510x510.png 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot-200x200.png 200w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2025\/06\/robot.png 512w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thinkcolorful.org\/?p=1350\">Running Microsoft&#8217;s 1-Bit BitNet LLM on My Dell R7910 &#8211; A Self-Hosting Adventure<\/a><div class=\"wp-block-latest-posts__post-full-content\"><!-- wp:paragraph -->\n<p>So Microsoft dropped this 1-bit LLM called <a href=\"https:\/\/github.com\/microsoft\/BitNet?tab=readme-ov-file#build-from-source\" data-type=\"link\" data-id=\"https:\/\/github.com\/microsoft\/BitNet?tab=readme-ov-file#build-from-source\">BitNet<\/a>, and I couldn&#8217;t resist trying to get it running on my new homelab server. Spoiler alert: it actually works incredibly well, and now I have a pretty capable AI assistant running entirely on CPU power! For the demo click on the plus button on the bottom right ;)<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">My Setup (And Why This Matters)<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;m running this on my Dell Precision Rack 7910 &#8211; yeah, it&#8217;s basically a workstation crammed into a rack case, but hey, it works! Here&#8217;s what I&#8217;m working with:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>My Dell R7910:<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Dual Xeon E5-2690V4 processors (28 cores total)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>64GB ECC RAM<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Running Proxmox VE<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Already hosting Nextcloud, Jellyfin, and WordPress<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>The cool thing about BitNet is that it doesn&#8217;t need fancy GPU hardware. While I&#8217;m running it on dual Xeons, you could probably get away with much less.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><strong>Minimum specs you&#8217;d probably want:<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Any modern 4+ core CPU<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>8GB RAM (though 16GB+ is better)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>50GB storage space<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>That&#8217;s literally it &#8211; no GPU required!<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">What the Heck is BitNet Anyway?<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Before we dive in, let me explain why I got excited about this. Most AI models use 32-bit or 16-bit numbers for their &#8220;weights&#8221; (basically the model&#8217;s learned knowledge). BitNet uses just three values: -1, 0, and +1.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Sounds crazy, right? But somehow it works! The 2 billion parameter BitNet model:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Uses only ~400MB of RAM (my Llama models use 4-8GB+)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Runs 2-6x faster than similar models<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Uses way less power<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Still gives pretty decent responses<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>I mean, when I first heard &#8220;1-bit AI,&#8221; I thought it would be terrible, but Microsoft&#8217;s research team clearly knew what they were doing.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Journey: Setting This Thing Up<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 1: Creating a Container for BitNet<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Since I&#8217;m already running a bunch of services running on Proxmox on my R7910, I decided to give BitNet its own LXC container. This keeps things clean and prevents it from messing with my other stuff.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>In Proxmox, I created a new container with these specs:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Template:<\/strong> Ubuntu 22.04 LTS<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CPU:<\/strong> 16 cores (leaving 12 for my other services)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Memory:<\/strong> 32GB (plenty of headroom)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Storage:<\/strong> 80GB<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>Important:<\/strong> You need to edit the container config file to add these lines, or the build will fail:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># Edit \/etc\/pve\/lxc\/[YOUR_CONTAINER_ID].conf\nfeatures: nesting=1\nlxc.apparmor.profile: unconfined<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>Trust me, I learned this the hard way after wondering why cmake was throwing mysterious errors!<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 2: Getting the Environment Ready<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>First things first &#8211; we need the right tools. BitNet is picky about its build environment:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># Basic stuff\napt update &amp;&amp; apt upgrade -y\napt install -y curl wget git build-essential cmake clang clang++ libomp-dev\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>Now here&#8217;s where I made my first mistake &#8211; I tried to use Python&#8217;s venv initially, but <a href=\"https:\/\/github.com\/microsoft\/BitNet?tab=readme-ov-file#build-from-source\">BitNet&#8217;s instructions specifically mention conda<\/a>, and there&#8217;s a good reason for that. Just install Miniconda:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>cd \/tmp\nwget https:\/\/repo.anaconda.com\/miniconda\/Miniconda3-latest-Linux-x86_64.sh\nchmod +x Miniconda3-latest-Linux-x86_64.sh\n.\/Miniconda3-latest-Linux-x86_64.sh\nsource ~\/.bashrc\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 3: The BitNet Installation Saga<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This is where things got interesting. The GitHub instructions look straightforward, but there are some gotchas:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>mkdir -p \/opt\/bitnet &amp;&amp; cd \/opt\/bitnet\n\n# This --recursive flag is CRUCIAL - don't skip it!\ngit clone --recursive https:\/\/github.com\/microsoft\/BitNet.git\ncd BitNet\n\n# Create the conda environment\nconda create -n bitnet-cpp python=3.9\nconda activate bitnet-cpp\npip install -r requirements.txt\npip install huggingface_hub\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>Now for the fun part &#8211; downloading the model and building everything:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code># Download the official Microsoft model\nmkdir -p models\nhuggingface-cli download microsoft\/BitNet-b1.58-2B-4T-gguf --local-dir models\/BitNet-b1.58-2B-4T\n\n# Build the whole thing\npython setup_env.py -md models\/BitNet-b1.58-2B-4T -q i2_s\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><strong>Pro tip:<\/strong> This build step takes a while. On my dual Xeons, it was about 10 minutes of heavy CPU usage. Grab a coffee &#8211; it&#8217;s compiling a ton of optimized C++ code.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 4: Testing My New AI<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Once the build finished, I had to try it out:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>python run_inference.py -m models\/BitNet-b1.58-2B-4T\/ggml-model-i2_s.gguf -p \"Hello, how are you?\" -cnv\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>And it worked! The responses weren&#8217;t GPT-4 quality, but they were coherent and surprisingly good for something running entirely on CPU. My partner thought I was connected to a service like openAI because the responses were so fast and the resource usage was so low ^_^<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>But I didn&#8217;t want to just run it in a terminal. I wanted to integrate it with AnythingLLM that I already had running.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 5: Making BitNet Play Nice with AnythingLLM<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Here&#8217;s the cool part &#8211; BitNet comes with a built-in API server:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>python run_inference_server.py -m models\/BitNet-b1.58-2B-4T\/ggml-model-i2_s.gguf -p 8080 --host 0.0.0.0\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>Then in AnythingLLM, I just added it as a &#8220;Generic OpenAI&#8221; provider:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>API Endpoint:<\/strong> <code>http:\/\/[my_container_ip]:8080<\/code><\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Model Name:<\/strong> <code>BitNet-b1.58-2B-4T<\/code><\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Token Context Window:<\/strong> 4096 (can be adjusted)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Max Tokens<\/strong>: 1024 (can be adjusted)<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>And boom &#8211; I had BitNet responding to queries through AnythingLLM&#8217;s nice web interface!<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Step 6: Making It Actually Reliable<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Running things manually is fun for testing, but I wanted this to be a proper service. So I created a systemd service:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/systemd\/system\/bitnet.service\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>[Unit]\nDescription=BitNet LLM API Server\nAfter=network.target\nWants=network.target\n\n[Service]\nType=simple\nUser=root\nGroup=root\nWorkingDirectory=\/opt\/bitnet\/BitNet\nEnvironment=PATH=\/root\/miniconda3\/envs\/bitnet-cpp\/bin:\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\nExecStart=\/root\/miniconda3\/envs\/bitnet-cpp\/bin\/python run_inference_server.py -m models\/BitNet-b1.58-2B-4T\/ggml-model-i2_s.gguf -p 8080 --host 0.0.0.0\nRestart=always\nRestartSec=10\nStandardOutput=journal\nStandardError=journal\n\n[Install]\nWantedBy=multi-user.target\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload\nsudo systemctl enable bitnet.service\nsudo systemctl start bitnet.service\n<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>Now BitNet automatically starts when the container boots, and if it crashes, systemd brings it right back up.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Results: How Does It Actually Perform?<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;ve been running this setup for a while now, and I&#8217;m honestly impressed. On my R7910:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Response time:<\/strong> Usually 1-3 seconds for short responses when running in the container itself.<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>When connected to anythingllm given the context windows and max tokens I put in it averaged about 7-8 seconds before responding but then would output that response relatively quickly <\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list --><\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Memory usage:<\/strong> Steady ~400MB as advertised<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>CPU usage:<\/strong> Spikes during inference, then drops to almost nothing<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Quality:<\/strong> Good enough for basic tasks, coding help, and general questions<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>It&#8217;s not going to replace GPT-4 for complex reasoning, but for a lot of everyday AI tasks, it&#8217;s surprisingly capable. And the fact that it&#8217;s running entirely on my own hardware with no API calls or subscriptions? That&#8217;s pretty sweet.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Demo!!<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Click the plus button on the bottom right!<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:html -->\n&lt;!&#8211;\nPaste this script at the bottom of your HTML before the  tag.\nSee more style and config options on our docs\nhttps:\/\/github.com\/Mintplex-Labs\/anything-llm\/tree\/master\/embed\/README.md\n&#8211;&gt;\n\n\n<!-- AnythingLLM (https:\/\/anythingllm.com) -->\n\n<!-- \/wp:html -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Lessons Learned and Gotchas<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Things that tripped me up:<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><strong>Forgetting the <code>--recursive<\/code> flag<\/strong> when cloning &#8211; this downloads necessary submodules<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Not installing clang<\/strong> &#8211; the error messages weren&#8217;t super clear about this<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Trying to use venv instead of conda<\/strong> &#8211; just follow their instructions!<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li><strong>Container permissions<\/strong> &#8211; those LXC config additions are crucial<\/li>\n<!-- \/wp:list-item --><\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><strong>Performance tips:<\/strong><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Give it plenty of CPU cores if you can<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>32GB RAM is probably overkill, but it&#8217;s nice to have headroom<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>The <code>i2_s<\/code> quantization seems to be the sweet spot for quality vs speed<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">What&#8217;s Next?<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I&#8217;m planning to experiment with:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Different quantization types (<code>tl1<\/code> vs <code>i2_s<\/code>)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Running multiple model variants simultaneously<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Maybe trying some fine-tuning if Microsoft releases tools for that<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p>The self-hosting AI space is moving fast, and BitNet feels like a real game-changer for those of us who want capable AI without needing a mortgage-sized GPU budget.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Setting up BitNet on my Dell R7910 turned out to be way more straightforward than I expected, once I figured out the few gotchas. If you&#8217;ve got a decent CPU and some spare RAM, I&#8217;d definitely recommend giving it a shot.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Having a capable AI assistant running entirely on your own hardware is pretty liberating. No API keys, no usage limits, no privacy concerns about your data leaving your network. Just pure, self-hosted AI goodness.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Plus, there&#8217;s something satisfying about telling people your AI assistant is running on a 1-bit model that uses less RAM than Chrome with a few tabs open!<\/p>\n<!-- \/wp:paragraph --><\/div><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-300x298.png 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-510x507.png 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-768x764.png 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-100x100.png 100w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM.png 1144w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/thinkcolorful.org\/?p=1287\">Documenting Dad: An AR-Enhanced Scientific Study of\u00a0Dad in the Wild<\/a><div class=\"wp-block-latest-posts__post-full-content\"><!-- wp:columns -->\n<div class=\"wp-block-columns\"><!-- wp:column {\"width\":\"66.66%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:66.66%\"><!-- wp:paragraph -->\n<p>In the spirit of Iceland&#8217;s cherished J\u00f3lab\u00f3kafl\u00f3\u00f0i\u00f0 (Christmas Book Flood) tradition, I embarked on creating something special for my dad this Christmas &#8211; a whimsical &#8220;field guide&#8221; studying the curious creature I fondly call &#8220;Pops.&#8221;<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"> The Concept<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Imagine David Attenborough narrating a nature documentary, but instead of following a rare bird or elusive big cat, he&#8217;s studying\u2026 my dad. That&#8217;s essentially what &#8220;Pops: A Field Guide&#8221; is &#8211; a scientific-style observation of my father&#8217;s natural habits, behavioral patterns, and comical fear of cute dogs, all written with love and humor.<\/p>\n<!-- \/wp:paragraph --><\/div>\n<!-- \/wp:column -->\n\n<!-- wp:column {\"width\":\"33.33%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:33.33%\"><!-- wp:image {\"id\":1292,\"sizeSlug\":\"large\",\"linkDestination\":\"media\"} -->\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"507\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-510x507.png\" alt=\"\" class=\"wp-image-1292\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-510x507.png 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-300x298.png 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-768x764.png 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM-100x100.png 100w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.06.45\u202fPM.png 1144w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:image {\"id\":1293,\"sizeSlug\":\"large\",\"linkDestination\":\"media\"} -->\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"507\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-510x507.png\" alt=\"\" class=\"wp-image-1293\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-510x507.png 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-300x298.png 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-768x764.png 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM-100x100.png 100w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.07.33\u202fPM.png 1144w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image --><\/div>\n<!-- \/wp:column --><\/div>\n<!-- \/wp:columns -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Technology<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>What made this book truly exciting for me to create is its augmented reality (AR) feature. Certain photos throughout the book serve as AR markers &#8211; when viewed through a phone or tablet, they spring to life as videos. Making it work is as simple as scanning a QR code in the book and opening up the webpage.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>[Code Repository: <a href=\"https:\/\/gitlab.com\/ephemeralwaves\/armagicphotos\">GitLab Link<\/a>]<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>The AR implementation uses:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>AR.js for marker-based augmented reality<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>A-Frame for 3D scene rendering<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Web-based delivery (no app required!)<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Creation Process<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Writing and Design<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Using Canva&#8217;s book creation tools, I crafted each page to mimic traditional nature field guides, complete with:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>&#8220;Scientific&#8221; observations<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Habitat studies<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Behavioral patterns<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Timeline Analysis<br>All written with a blend of factual family history and playful scientific parody.<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Audio Narration<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>To complete the nature documentary feel, I created an audiobook version narrated in a style reminiscent of Sir David Attenborough. This added an extra layer of authenticity to the &#8220;scientific&#8221; observations. Here is a clip: <\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image {\"id\":1291,\"sizeSlug\":\"large\",\"linkDestination\":\"media\"} -->\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM.png\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"507\" src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-510x507.png\" alt=\"\" class=\"wp-image-1291\" srcset=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-510x507.png 510w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-300x298.png 300w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-150x150.png 150w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-768x764.png 768w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM-100x100.png 100w, https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/Screenshot-2024-12-11-at-6.03.44\u202fPM.png 1144w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:audio {\"id\":1290} -->\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/About.mp3\"><\/audio><\/figure>\n<!-- \/wp:audio -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Technical Implementation<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The AR features were implemented using marker-based tracking, allowing videos to appear when specific photos are scanned. The entire system runs in a web browser, making it accessible without any special software installation.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The J\u00f3lab\u00f3kafl\u00f3\u00f0i\u00f0 Connection<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The Icelandic tradition of J\u00f3lab\u00f3kafl\u00f3\u00f0i\u00f0, where books are exchanged on Christmas Eve, provided the perfect <a href=\"https:\/\/www.merriam-webster.com\/dictionary\/occasion\">occasion<\/a> for this gift. This tradition, which translates to &#8220;Christmas Book Flood,&#8221; celebrates the joy of reading and sharing stories during the holiday season.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">The Result<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>The final product is a multi-layered experience:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>A physical book filled with photos and humorous observations<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>An AR experience bringing memories to life through video<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>An audiobook adding another dimension of entertainment<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>A celebration of family, technology, and tradition<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Technical Details<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:columns -->\n<div class=\"wp-block-columns\"><!-- wp:column {\"width\":\"66.66%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:66.66%\"><!-- wp:paragraph -->\n<p>For those interested in creating similar AR-enhanced books, the technical implementation is available on GitLab. The system uses:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Pattern-based markers for video triggering<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Web-based AR for universal accessibility<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Responsive design for various devices<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Audio on\/off functionality<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Cross-platform compatibility<\/li>\n<!-- \/wp:list-item --><\/ul>\n<!-- \/wp:list --><\/div>\n<!-- \/wp:column -->\n\n<!-- wp:column {\"width\":\"33.33%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:33.33%\"><!-- wp:video {\"id\":1289} -->\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/thinkcolorful.org\/wp-content\/uploads\/2024\/12\/signal-2024-12-10-122056.mp4\"><\/video><\/figure>\n<!-- \/wp:video --><\/div>\n<!-- \/wp:column --><\/div>\n<!-- \/wp:columns -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Creating Your Own<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>Interested in making something similar? The basic steps are:<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Design your book (I used Canva)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Generate AR markers for your chosen images (link in the gitlab README doc)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Set up the web-based AR viewer on a server (local or on the net)<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Test thoroughly across devices<\/li>\n<!-- \/wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Print and share!<\/li>\n<!-- \/wp:list-item --><\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p>&#8220;Pops: A Field Guide&#8221; represents more than just a clever use of technology &#8211; it&#8217;s a celebration of family, humor, and the joy of giving. By combining traditional bookmaking with modern AR technology, it creates a unique way to preserve and share family memories.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><\/p>\n<!-- \/wp:paragraph --><\/div><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-206","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/pages\/206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=206"}],"version-history":[{"count":4,"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/pages\/206\/revisions"}],"predecessor-version":[{"id":1276,"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=\/wp\/v2\/pages\/206\/revisions\/1276"}],"wp:attachment":[{"href":"https:\/\/thinkcolorful.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}