<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[ilithya's tiny newsletter]]></title><description><![CDATA[Short thoughts on shader basics and whatnot.]]></description><link>https://ilithya.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ooX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc61bb4-ff35-4d6c-a680-4aafe88135f5_350x350.png</url><title>ilithya&apos;s tiny newsletter</title><link>https://ilithya.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 01 Sep 2026 08:29:23 GMT</lastBuildDate><atom:link href="/__u/ilithya.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[ilithya]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ilithya@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ilithya@substack.com]]></itunes:email><itunes:name><![CDATA[ilithya]]></itunes:name></itunes:owner><itunes:author><![CDATA[ilithya]]></itunes:author><googleplay:owner><![CDATA[ilithya@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ilithya@substack.com]]></googleplay:email><googleplay:author><![CDATA[ilithya]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[On building an almost-daily practice]]></title><description><![CDATA[Making computational art with creative coding &#127793;]]></description><link>https://ilithya.substack.com/p/on-building-an-almost-daily-practice</link><guid isPermaLink="false">https://ilithya.substack.com/p/on-building-an-almost-daily-practice</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Tue, 07 Jul 2026 21:30:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J7i4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>I thought many of you following my newsletter might find it useful to learn how I built my current practice of writing shaders <a href="https://www.instagram.com/ilithya_rocks/">almost on a daily basis</a>.</p><p>This is a long post, thus I made a table of contents:</p><ul><li><p>Artist background</p></li><li><p>Inspiration</p></li><li><p>#anydayshaders An almost-daily practice </p><ul><li><p>The beginning (2020)</p></li><li><p>Getting familiar (2021)</p></li><li><p>Developing a style (2022)</p></li><li><p>Refining a style (2023)</p></li><li><p>Steady practice (2024)</p></li><li><p>Effortless practice (2025)</p></li><li><p>Current practice (2026)</p></li></ul></li><li><p>Tips on an almost-daily practice </p></li><li><p>Online workshop on building a practice</p></li></ul><p>If you want to skip to my tips or workshop info, scroll all the way to the bottom.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!J7i4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 424w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 848w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 1272w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!J7i4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png" width="1454" height="1585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1585,&quot;width&quot;:1454,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5462751,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 424w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 848w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 1272w, /__u/substackcdn.com/image/fetch/$s_!J7i4!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff522309a-0649-4eaf-bafe-70dc4517a508_1454x1585.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2026 &#8212; Part 1.</figcaption></figure></div><h2>Artist background</h2><p>For anybody new in here, welcome! I&#8217;m a multidisciplinary artist working primarily with shaders. I collaborate with other artists, musicians, curators, brands, studios, and independent designers around the world to create mesmerizing visual experiences for fine arts (museums and galleries), the web, festivals, music releases (singles, eps, albums), and live shows. </p><p>I&#8217;m a self-taught programmer creating computational artwork with code. I teach often on the subject, as I have a <a href="https://courses.ilithya.rocks/intro-to-shaders">course on fundamentals</a>, this sporadic newsletter, in addition to offer <a href="https://courses.ilithya.rocks">workshops and seminars independently</a> focusing on shaders, creative coding, and generative art.</p><h2>Inspiration</h2><p>When I first started to learn creative coding in 2019, before I even selected my favorite way to create art with code, I started following artists making computational art or generative art in social media. </p><p>While I went into a rabbit hole and discovered so much inspiration, a few artist that were posting daily or frequently got my attention: <a href="https://www.instagram.com/mattdesl_art/">Matt DesLauriers</a>, <a href="https://www.instagram.com/sasj_nl/">Saskia Freeke</a>, <a href="https://www.instagram.com/lejeunerenard/">Sean Zellmer</a>, <a href="https://www.instagram.com/davebeesbombs/">Dave Whyte</a> and <a href="https://www.instagram.com/zach.lieberman/">Zach Lieberman</a>. </p><p>I found it fascinating that they were generating so much beautiful content that often. At the time, I wondered how they could even manage to do such task, as me creating something even decent (in my opinion) would take me weeks, if not months. I couldn&#8217;t conceive how that would be possible.</p><p>Maybe worth mentioning too that what lead me to learn creative coding back then was that I was looking for a therapeutic activity to support my mental health. Something that I would enjoy so much doing, it would relax me and allow me to forget the complications of life for some time. Once I realized I could apply three things I loved: art, design and programming, I was hooked.</p><h2>#anydayshaders An almost-daily practice </h2><p>In 2020, I decided to chase the pot of gold at the end of the rainbow. I was determined to become an artist, and not only have a hobby of creative coding. In order to do this I had to become good at whatever I&#8217;d choose to do. <em>The goals at the time</em>: one day make physical installations and projections with abstract motion visual art, work with museums or galleries, and do visuals for musicians.</p><p>I heard from many artists I had been watching closely for about a year, that building a practice of creating constantly helped them do the kind of the art they were doing those days, and also find the type of work they wanted. In addition, to my experience in other fields and life, practice makes perfect (nothing is perfect, but can be really good).</p><p>I sat one day in my computer with the decision of learning shaders as my way to create art with code, and while I found it very intimidating and hard, I told myself that in order to not be overwhelmed and get off track of my artistic goal, I&#8217;d make a creative coding practice of whenever I&#8217;d feel like doing it. Not daily, not weekly, not even monthly, basically no time barrier (in my mind), thus I&#8217;d not feel pressured to create, but still I had to try creating again after a creation, and so I called my practice <a href="https://www.instagram.com/explore/search/keyword/?q=%23anydayshaders">#anydayshaders</a>.</p><p>I also wouldn&#8217;t tied myself up to a schedule. I will create during any time of the day I&#8217;d have time and feel inspire or want to learn shaders. It could be mornings, afternoons or evenings.</p><p>I had to let go of my perfectionism and force myself to post a shader exploration after spending maximum a few days on it, not even a week. Sort of <em><a href="https://en.wikipedia.org/wiki/Pomodoro_Technique">pomodoro</a></em> myself. Even if by then it felt not great in terms of creation, share it as a way to ground me into limiting myself in drawing with code as with rough sketches with pencil and paper on a sketchbook. Maybe one day one of such sketches could be improved, but for the practice of learning shaders and building an artistic practice, I would try to simply spend only a certain amount of time until I achieve the understanding of a certain algorithm or land something interesting visually, even if not fully finished. Make it a habit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LFzR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 424w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 848w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LFzR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png" width="1456" height="885" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:885,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:239765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 424w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 848w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LFzR!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a2fc36d-97fb-46ea-9e8c-1d57f7d186a7_2450x1489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">First shader creation posted as #anydayshaders in April, 2020.</figcaption></figure></div><p>When I started creating my first shaders, I thought to share it with the world as many other artists who as I mentioned inspired me, and because I thought it&#8217;d make a great visual diary of how my practice develops, to also be able to reflect on how my shader skills and techniques would grow, along my artistic visual craft progress.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!AVRu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 424w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 848w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 1272w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!AVRu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png" width="1456" height="885" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:885,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4650694,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 424w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 848w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 1272w, /__u/substackcdn.com/image/fetch/$s_!AVRu!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb98a431-fa42-4cda-ad77-c43f1a4e627b_2450x1489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Second shader creation posted as #anydayshaders in April, 2020.</figcaption></figure></div><h3>The beginning</h3><p>The first year of my practice I created 100 shaders. Some of them daily, some of them after many days, and some weekly. The time of the day varied, but I&#8217;m a night person, thus many of them were probably created in the evenings. Since the beginning of my journey I&#8217;ve been attracted to noise algorithms, hence you can see it already in my first year creations.</p><p>That initial year I was also using a color limitation as a grounding instrument. I decided to almost only use pink, and maybe one or two extra colors going well with it. I took pink, because it was the most obnoxious color (now I learned to love pink) during all my life until then. I wanted to get used to be completely out of my comfort zone and reduce choice distractions, while keeping the focus on learning and creating. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!V_tb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 424w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 848w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 1272w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!V_tb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png" width="1456" height="1152" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1152,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5491635,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 424w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 848w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 1272w, /__u/substackcdn.com/image/fetch/$s_!V_tb!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc76d81df-c984-4523-81b2-d13ea17cf182_2000x1582.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2020.</figcaption></figure></div><p>When you have unlimited access to something, the harder or longer the decision-making process becomes, thus by limiting myself with a small color palette, I wouldn&#8217;t spend much time deciding on that during a shader creation and save some time during the exercise of building a frequent practice of creating.</p><h3>Getting familiar</h3><p>After 9 months, in 2021 I felt I had started to build my little shader practice and found myself creating a bit more often than the first year. That second year I made 139 shaders.</p><p>And since the flow of creating was kicking-in, I decided to slowly introduce more colors into my almost-daily practice. That year some days I wouldn&#8217;t limit myself to use mostly pink, but maybe getting away from pink completely, as long as it wouldn&#8217;t take so much of my time in terms of decision-making while creating a shader.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Hnw8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 424w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 848w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Hnw8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png" width="1453" height="966" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:966,&quot;width&quot;:1453,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1767717,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 424w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 848w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Hnw8!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc67a58e8-e9e0-42ab-a4f8-71111ec9579d_1453x966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2021.</figcaption></figure></div><p>When it comes to algorithm exploration, in here I was learning <a href="https://en.wikipedia.org/wiki/Ray_marching">ray marching</a> to create 3D shapes with pure pixel manipulation within a fragment shader, while still exploring 2D abstract work, often but not always with noise algorithms, and understanding better domain repetition to create patterns. </p><h3>Developing a style</h3><p>By 2022 I managed making 296 shaders. I was getting faster! The practice of coding shaders was beginning to settle and I started to feel I was also finding my style as an artist. </p><p>The more I was creating, the more comfortable I was getting at sharing creations half-done or tenth-done, and the easier the &#8216;<em>let go</em>&#8217; of a not-ready creation was. Furthermore, the more natural I was at being vulnerable in the digital canvas: creating shapes, choosing colors and movement didn&#8217;t feel anymore so much as a choice, but rather as a true expression of a feeling. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2Nk_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 424w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 848w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2Nk_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png" width="1456" height="1585" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1585,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4074483,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 424w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 848w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2Nk_!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea7039a6-2806-44bf-bf1e-cb46654688cc_1457x1586.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2022.</figcaption></figure></div><p>Since the beginning, drawing with code felt like art therapy. But given that I was still learning basic algorithms for programming in GLSL, often I couldn&#8217;t fully control what I was doing. Maybe what I had on my mind was not fully expressed yet in the canvas, just parts of it. But during this year, I felt I had started having more control on transferring my ideas into the canvas. I began writing my own noise algorithms and sharing my gathered knowledge in shape of workshops.</p><p>I also discovered that at this point I was slowly creating a library of techniques and visual work that allowed me to pick and pull from my favorite threads here and there in order to create something that wasn&#8217;t fully from scratch, which tends to take longer, but rather iterate further from some seeded ideas, and mix and match them.</p><p>If I was down and sad, I&#8217;d tend to use dark colors and dark shape themes. If I was angry or stress, I&#8217;d use loud dark colors with shapes in tension. And if I was happy, thrill or peaceful I&#8217;d use pastel, bright or soft colors, with a gentler, friendlier or energetic look. Always generating an artwork that felt hypnotic, bringing me peace either way as an emotional releaser.</p><h3>Refining a style</h3><p>In 2023 I made 241 shaders. Not as many as the previous year, but still enough to continue building my almost-daily practice. </p><p>I was proud of sticking together with this artistic practice, which had let me to reach my goals. By then, it was a habit that if I went many days without making a shader, I&#8217;d miss it and felt I needed my happy place: mindfulness therapy and creative space.</p><p>I also was glad that I wouldn&#8217;t force myself to do a shader daily all year long if I didn&#8217;t feel like it. I had no intention of making an artistic practice that would feel like a tedious job (even when I wanted it to become my main job, but not a burnout kind of job) or forced habit, rather than a natural one that felt good by exercising it. Just as when you go workout your favorite sport weekly or yoga class, that you enjoy so much you decide to make it your job and work as a trainer/instructor.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!iVNy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 424w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 848w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!iVNy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png" width="1454" height="1586" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1586,&quot;width&quot;:1454,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5249927,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 424w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 848w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 1272w, /__u/substackcdn.com/image/fetch/$s_!iVNy!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127d2618-d2ad-41e0-ae6b-e056b7041abb_1454x1586.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2023.</figcaption></figure></div><p>As I was deepening my artistic style by drawing with shaders, I found myself exploring new algorithms this year such as light <a href="https://en.wikipedia.org/wiki/Refraction">refraction</a> with ray marching, light in 2D visuals that make them look as 3D (yes, basically faking ray marching), and extending on my own noise algorithms to sometimes avoid using very long (code length) open sourced ones. I was trying to improve the performance of my shaders code-wise, hence trying to write as little code as I could to create something, because in addition to care about this attribute as a programmer, I have an old computer that every time I&#8217;d make something with ray marching, its fans were heating so much I felt my computer could explode at any moment. </p><p>It was the beginning of pushing the boundaries of my algorithm knowledge at the time to the next level. This year I started this newsletter, to continue on a path of sharing gathered knowledge, as I finally felt I could explain what I was learning even better than the previous year, and wanted to make the journey into learning shaders with GLSL faster and easier for others than it was for me when I got started. I thought many learning resources for GLSL are quite complex to begin with and intimidating if one doesn&#8217;t have a computer science, engineering or math degree. I wanted to make it more accessible for people like me.</p><h3>Steady practice</h3><p>Another year went by, and in 2024 I had a prosper ongoing almost-daily creative coding practice that was bringing me the kind of work I wish to do as an artist. I created 221 shaders, less than the previous year, but who&#8217;s counting within a time frame. For me it&#8217;s all about my own pace and flow. It&#8217;s not a race.</p><p>I had started collaborating with two museums in two different countries to showcase some of <a href="https://www.ilithya.rocks/work/">my work</a> in an interactive format as a collaborative performance with a musician and a physical installation reacting to body tracking. </p><p>The mindfulness the practice of making my art was giving me was reflecting stronger in my artwork. I intentionally shaped and layered moving forms with a variety of color palettes directed always by my emotions. I still followed a <em>pomodoro</em> method in which I&#8217;d pursue to research an algorithm or shader technique for some days or a week while sometimes using the same color palette, iterating each time after where I left last more often than the former year. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!yphr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 424w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 848w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!yphr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png" width="1454" height="1604" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1604,&quot;width&quot;:1454,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4596356,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 424w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 848w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yphr!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3758b816-d776-4ea8-8c0e-f8707c042735_1454x1604.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2024.</figcaption></figure></div><p>Because I knew better what I was doing and sharing gathered knowledge is part of who I am, I decided to make a complete <a href="https://courses.ilithya.rocks/intro-to-shaders">shader course</a> on learning fundamentals when an opportunity arose on a new platform that invited me. A course designed for beginners eager to dive into the world of computational thinking and creative coding with shaders, as well as for those who weren&#8217;t necessarily  beginners, but still struggled with a solid foundation. </p><p>This year I tried to sit with my craft no longer than 2 hours a day. Some days started to be enough just to do 30 minutes, others one hour, and whenever I&#8217;d find a rabbit hole, I&#8217;d tell myself after 2 hours it was time to wrap that up for the day, and continue another day digging such rabbit hole. I still needed to remind myself that having some boundaries allows you to not feel overwhelmed and staying consistent. I believe building some discipline, as my beloved martial arts, is an integral part of maintaining an artistic practice. </p><p>Visually, I explored themes of sanity along with consciousness states intending to provoke hypnotic sensations, which are part of my daydreams when I&#8217;m in a meditative state revealing often to me as psychedelic visions (no drugs involved, my imagination travels far). </p><p>Algorithmically speaking, I was researching and exploring textures together with noise or patterns. 90s aesthetic with that imperfect look in printed photographs or pixelated VHS videos with grain texture. Silky, shiny liquified soft textures like those from a marine or feathered animal.</p><h3>Effortless practice</h3><p>The time had arrived where my almost-daily practice felt like walking or riding a bike. The year of 2025 I made 275 shaders.</p><p>My library of techniques and visual work was growing, and with it a convinience of going from one theme to another one in short time. Because my brain was getting used to threat math and algorithms as painter do with paint on a canvas, even if I was curious to explore a new coding technique, my brain would be faster at grasping or understanding the logic behind it, compared to how it was during the first two years of my practice.   </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oQkU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 424w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 848w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oQkU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png" width="1456" height="1614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1614,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5154243,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 424w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 848w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oQkU!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cd52496-39e6-44a5-ab5a-7fe71ee441ff_1456x1614.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2025.</figcaption></figure></div><p>This year I was still strong on using grain textures with my dear noise and domain repetition to create patterns. I also began pushing the boundaries of fractal algorithms (I find them so fascinating and hypnotic, specially as we can find them in nature and organic forms within ecosystems), which I began exploring in former years but haven&#8217;t mentioned it as it was not showing up in the artwork shared from those years. </p><p>If I&#8217;d show you all of my <a href="https://www.instagram.com/ilithya_rocks/">#</a><em><a href="https://www.instagram.com/ilithya_rocks/">anydayshaders</a></em>, I&#8217;d have to list way more techniques than the ones mentioned in this post, and I already feel like I&#8217;m writing a novel. I have no intention to bore you, but to inspire you.</p><h3>Current practice</h3><p>We are in July of 2026, midyear, and to this day I&#8217;ve made 173 shaders. Let&#8217;s see how many more life allows me to create the rest of the year with my motto of &#8216;<em>making with no pressure</em>&#8217;.</p><p>At the present, I find myself still creating art almost-daily, and can&#8217;t or won&#8217;t do it daily. I refuse to put that kind of pressure to myself, which until today had worked out well for me, as I was able to tackle my first artistic goals and much more I couldn&#8217;t possibly imagine at the time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!AOFC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 424w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 848w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 1272w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!AOFC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png" width="1448" height="1584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1584,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6091745,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/204959974?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 424w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 848w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 1272w, /__u/substackcdn.com/image/fetch/$s_!AOFC!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8068b094-b014-46b7-b6de-4fbfe00f6337_1448x1584.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some #anydayshaders shared on Instagram in 2026 &#8212; Part 2.</figcaption></figure></div><p>Right now I find myself still loving the use of noise and grain textures in my visual work. I&#8217;m exploring new territories leveling-up with my own noise algorithms mixed with domain repetition to draw optical illusions abstractly of organic forms and elements of nature such as fire, rain, light, plants, flowers, animals, stone or wood textures. The 90s 3D hidden artwork from the books <a href="https://en.wikipedia.org/wiki/Magic_Eye">Magic Eye</a> are big inspiration.</p><p>Everything I draw with code is inspired by life experiences (lots of nostalgia), sound, surrealism, and the abstract. Maybe something important to mention from my almost-daily practice from day one is that it&#8217;s heavily influenced by music (hence one of my first goals). When I sit to write shaders and paint in the digital canvas, I listen to music 90% of the time. It&#8217;s part of my mindfulness process within my practice. </p><p>First I feel my emotions, I listen to my body, and I play a tune that feels good with that. Then I start knitting with code whether is a new algorithm exploration, or algorithms I  already know to express what I am sensing. </p><p>Some days I have a vision of what I want to draw, others I don&#8217;t and I simply put together some math until I land in something visually captivating that I want to record. Other days are none of that and it&#8217;s a bug (code error) I bumped into, but when I see it it&#8217;s just beautiful, I keep the sketch even if it has a programming error. That is the beauty of making generative art or art with code: you don&#8217;t need to care that the code is well written. You can have misspellings and grammatical errors as when you&#8217;re learning a new language, and it&#8217;s totally fine! What matters is the output since you&#8217;re making art, not software. </p><p>This is the first year that I&#8217;m trying to add a new boundary: having a schedule. I create in the mornings as soon as I wake up. I make coffee, read a bit on my phone, and then start drawing with shaders. If some mornings I&#8217;m not in the mood, or maybe have no time because of life appointments, I do it in the evenings after dinner or working out.   </p><p>Btw. if you&#8217;re ever curious and go count my shaders on social media, you won&#8217;t find all of them. I tend to delete the ones I feel are terrible after sharing them. I do keep them in my computer on my shader digital diary, but not every one of them ends up being shared with the world. I thought of also talking about this bit, because it is hard and frustrating some days to make something that one doesn&#8217;t find good enough. I still force myself to share it as part of my process, but I allow myself to delete it from the public sphere, if it disturbs me too much.</p><p>This year as I feel I begin to master my practice, I had an entrepreneurial spark. For the longest time, I&#8217;ve been inspired by analog art. I set out to launch an online shop with limited editions of <a href="https://shop.ilithya.rocks">fine art prints</a>. This topic made it into its own post you can <a href="/__u/ilithya.substack.com/p/shader-artwork-shop">read here</a>. If you want to support me, you can collect from a selection of my generative artworks produced as museum-quality archival gicl&#233;e prints. I made four collections of 50 unique editions, and will be only available until the end of 2026. After this I no longer will print these editions ever again.</p><p>Following that, I moved the <a href="https://courses.ilithya.rocks/intro-to-shaders">shader course</a> I initially created two years ago into my own platform. It&#8217;s not a platform created by me, but rather a platform I subscribed to for hosting courses. This way I have full control over it and can expand the course, which was the plan to begin with, but when you work through a third-party, every step takes a long time to happen. This subject also has its <a href="/__u/ilithya.substack.com/p/shader-course-relaunch">own post</a>. Now I&#8217;m adding content almost daily, as the goal is to improve the quality of its content and increase the number of accessible learning resources, giving others the confidence and inspiration to write their own shaders.</p><h2>Tips on an almost-daily practice </h2><p>Wow, if you made it so far until here, thanks for reading this. I hope you find my detailed journey of building my practice of writing shaders to make art useful. If you think this might be valuable for someone else, please share it with them. </p><p>If you&#8217;re having a hard time on creating a practice in computational art with creative coding, keep in mind:</p><ul><li><p>Repetition builds mastery</p></li><li><p>Progress comes through practice</p></li><li><p>Take a day at a time  </p></li><li><p>Sit to create only if you feel inspired or want to learn something new</p></li><li><p>It&#8217;s ok to not be productive everyday of the year</p></li><li><p>Find your flow</p></li><li><p>What others share on socials does&#8217;t represent a standard to measure yourself</p></li><li><p>Put yourself first, everything else can follow</p></li><li><p>It&#8217;s not a competition or a race</p></li><li><p>A little discipline provides consistency</p></li><li><p>Setting boundaries help maintain focus</p></li><li><p>Make a schedule for it, only if fitting</p></li><li><p>Share to the world as much as you feel comfortable with sharing</p></li></ul><p><em>In regards the last tip</em>: I won&#8217;t deny sharing in social media helps a lot in having other people discover your work, including future collaborators, curators, and even foster friendships with fellow artists. But this is about mastering your craft, and I believe is overrated that everyone must be in social media sharing their practice progress. I know many people who are by nature stress by accessing social media, so don&#8217;t let that fact stop you from building a practice. There are other ways for you to share your practice with the world if you want to, like making a blog. Maybe it&#8217;s about finding the right social media network that works for you, without adding any stress to your life. Maybe is about not sharing every iteration of your practice, but rather monthly, quarterly or yearly milestones.</p><h2>Online workshop on building a practice </h2><p>I&#8217;ve been thinking of making an online workshop for helping others to build a practice of making computational art with creative coding.</p><p>I picture a month-long workshop with 4 sessions (maybe using zoom and discord) for a cohort of maximum 15 people. The workshop would be for example, every Tuesday for 4 weeks, with each session lasting 2-3 hours (including ofc some breaks).</p><p>The workshop&#8217;s purpose would be to get you started with your practice, whether you choose it to be daily or not, which will not be the goal here, but rather to give you the tools needed to make it a habit. Most likely after a month, you&#8217;ll be getting used to find a process and schedule that works for you, so that after that it might be easier for you to continue on a steady path towards building your practice.</p><p>You don&#8217;t need to make a shader practice the focus for this workshop. It could be p5.js, processing, TouchDesigner or Unity. Basically the way of creating wouldn&#8217;t be important either. I&#8217;m not going to teach you shaders. I will teach you how to lay the foundation for mastering your craft.</p><p>If this sounds interesting to you, please leave me a comment here or reach out to me through any of my websites or social media channels listed in the footer. If at least 10 people show interest, I&#8217;d make this workshop happen and announce it for you to join.</p><p><span>Until next time,</span><br><span>&#9996;&#127997;</span></p><div><hr></div><h2><span>Update: Aug 5, 2026</span></h2><p><span>Thank you for your messages! It seems there&#8217;s enough interest in the online workshop mentioned in this post, thus I&#8217;m planning one for when a cohort is ready. </span></p><p><span>Find all details about the workshop </span><a href="https://courses.ilithya.rocks/workshop-building-practice"><span>here</span></a><span>, and join the waitlist if you&#8217;d like to take part.</span></p><div><hr></div><p><span>Thanks for reading! &#128578;&#127752;&#129719; </span><br><br><span>Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p><a href="https://www.ilithya.rocks">ilithya.rocks</a><br><a href="https://courses.ilithya.rocks/">courses.ilithya.rocks</a><br><a href="https://shop.ilithya.rocks/">shop.ilithya.rocks</a><br><br>Follow me:<br><a href="https://www.instagram.com/ilithya_rocks/">instagram</a>  //  <a href="https://bsky.app/profile/ilithya.bsky.social">bluesky</a>  //  <a href="https://www.threads.com/@ilithya_rocks">threads</a>  //  <a href="https://x.com/ilithya_rocks">twitter</a></p>]]></content:encoded></item><item><title><![CDATA[Impostor syndrome]]></title><description><![CDATA[To be, or not to be... &#128579;]]></description><link>https://ilithya.substack.com/p/impostor-syndrome</link><guid isPermaLink="false">https://ilithya.substack.com/p/impostor-syndrome</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Wed, 17 Jun 2026 23:17:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ooX2!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc61bb4-ff35-4d6c-a680-4aafe88135f5_350x350.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Please take this read with a little grain of salt, as it&#8217;s very personal, and this doesn&#8217;t apply to everyone, as every person is a different world.</p><p>Enjoy the read&#8230; or not.</p><div><hr></div><blockquote><p>&#8220;<em>To be, or not to be, that is the question.</em>&#8221; </p></blockquote><p>What a beautiful <a href="https://en.wikipedia.org/wiki/Soliloquy">soliloquy</a> by Shakespeare. This is how I feel sometimes when impostor syndrome kicks in, but instead of wondering about &#8220;<em>to live or not to live</em>&#8221;, my mind wanders to the question of &#8220;<em>do I know this well, or do I not know it so well</em>&#8221;.</p><p>For 20 years of my life, I&#8217;ve been dabbling in several different fields of work, many of which I didn&#8217;t learn while going to university, but which were completely self-taught, and with which a seed of doubt seemed to come along for the ride, uninvited.</p><p>Most of those years, I&#8217;ve been working mostly as a designer, front-end developer and most recently as an artist and educator. I&#8217;m well positioned as the latter, nevertheless I struggle on and off with thoughts of &#8220;<em>I&#8217;m trying to become an artist</em>&#8221; or &#8220;<em>I&#8217;m trying to teach what I know&#8230;</em>&#8221; or even &#8220;<em>I&#8217;m trying to go back to web development</em>&#8221;. In every sentence, the word &#8220;<em>trying</em>&#8221;, sneaks into what I think and say, and then people correct me and say, &#8220;But <em>you&#8217;re an artist</em>&#8221;, &#8220;<em>you&#8217;re an educator</em>&#8221;, &#8220;<em>you&#8217;re a developer</em>&#8221;, and I catch to myself thinking and saying, &#8220;<em>Yes, I know I am, but I still don&#8217;t feel like a real one, not yet</em>&#8221;. &#8220;<em>Not yet</em>&#8221;, as if continuing to walk any of those paths would eventually take me to a finish line where I&#8217;d finally feel that &#8220;<em>I had arrived</em>&#8221;. And I say &#8220;<em>as if</em>&#8221;, because years have gone by, and I still catch myself sometimes doubting myself and thinking I&#8217;m not there yet.</p><p>It&#8217;s a weird feeling when it kicks in, because it feels exactly as the name suggests. I feel it&#8217;s wrong of me to say, for example &#8220;<em>I&#8217;m an artist</em>&#8221;, because maybe when people come and see my work and talk to me, they&#8217;re gonna realize I&#8217;m not a real artist yet, and they&#8217;re going to discover that &#8220;<em>I&#8217;m a fraud</em>&#8221;, that &#8220;<em>I&#8217;m not real</em>&#8221;. Oh, I am so wrong, I can say right now while I&#8217;m writing this and not feeling impostor syndrome at the moment. How dare I think like that of myself, when I&#8217;ve work so hard over the years to become the artist I wanted to be. I work everyday on my artistry. I know that, I can rationalize it. However, this sneaky bastard (impostor syndrome), seems to crawl out from under the bed sometimes.</p><p>I wonder why this self-doubt doesn&#8217;t fully go away, even as more time passes and, of course, I gather more knowledge and experience in the fields I&#8217;m working with. I wonder if it&#8217;s because, for the longest time, I&#8217;ve always been multidisciplinary. I enjoy doing different things at the same time (but some things can&#8217;t be done at the exact same time, so one has to go back and forth with it between periods of time). I have an infinite curiosity to learn new things. I get bored with easy and routine work. I need challenges to feel alive, and so I can never have a feeling that I have fully mastered something when I look around and see other people who have spent 10 or 20 years focusing on a single field. Hence, I can&#8217;t compare myself to them, because I don&#8217;t have that level of knowledge.</p><p>I wonder if the fact that I am a woman plays a role, and it seems, at least in my circles, that women tend to doubt themselves more than men. I&#8217;ve had so many conversations with brilliant women around me in the past months on the topic, about how they&#8217;re struggling in their own way with impostor syndrome, and then I&#8217;d say, &#8220;<em>You&#8217;re not alone. This is my bread and butter for years</em>&#8221;. I have an on-and-off relationship with impostor syndrome, because while I wouldn&#8217;t say I feel it daily, I have periods and moments every year when it feels strong. And while every time I feel it, I try to rationalize that it&#8217;s not true, because I have proof I know what say I know, it&#8217;s still hard sometimes to convince myself otherwise, when once again I compare myself with others who are more knowledgeable.</p><p>I oftentimes try to tell myself &#8220;<em>Be more like a man</em>&#8221;. They&#8217;re fearless. They fake it until they make it&#8212;again, just talking about the men I&#8217;ve experienced in my circles&#8212;who always, when they share stories about going to job interviews or doing certain tasks at work, say, &#8220;<em>Well I didn&#8217;t know how to do that, but I said I knew it. I figured I could learn it along the way</em>&#8221;. They are just so sure of themselves, they even know they can surely learn something. I&#8217;d be kind of terrified to lie about something I cannot do and maybe not learn in time. How do men around me seem to have this confidence in themselves? </p><p>I wonder if it has to do with how we grow up&#8212;and I&#8217;m talking about a long time ago because I&#8217;m pretty sure it&#8217;s different for new generations. But imagine growing up in the 80s and 90s in a third-world country, where, as a girl, I would often be taught to be kind, respectful, polite, not to be rough, and not to try certain things that were considered too hard for girls and meant only for boys. And I&#8217;m not talking about what was taught at home, but rather at school and in the communities around me, as fortunately I grew up with parents who encouraged me to pursue anything I wanted and to always go all the way.</p><p>And while at home I had support to pursue anything I wanted to do, I was also educated to excel and always do my best and be the best at anything I&#8217;d do, no matter what, no questions asked, trying again and again until I reached the top. As a result, perfectionism is always around the corner, and with it, perhaps self-doubt sneaking back and forth whenever I can&#8217;t be at the top. </p><p>What if it&#8217;s the fact that many of the fields I&#8217;ve always been interested in pursuing are male dominated, sometimes at a ratio of 90% men to 10% women. And so the expectations of many people within such fields are sometimes lower if one is a woman, because they&#8217;re not used to having many women interested in the field. </p><p>Thus, is impostor syndrome in a way a matter of gender upbringing? I certainly haven&#8217;t met as many men in my life with impostor syndrome as much as the women around me. Might perfectionism have something to do with it? Does it have to do with pursuing careers in fields where a large percentage of people are of the opposite gender? Is it rooted in not staying focused on one single field for years, or even in not going to university to learn one&#8217;s profession? </p><p>Oh well, how is it for you? How do you manage your impostor syndrome? Where do you think it&#8217;s rooted?</p><p>For me, it helps to talk to myself more gently through that inner voice we all have inside us. Reminding myself what others say about my work, and that those are not dreams, but real opinions. Telling myself that I probably know very well the things I so often doubt myself about knowing, but that my standards for knowledge might be too high and that I need to get back to reality and look at the average as well. While it may be good to have high standards, because they push me to become better, the process of becoming is also valuable, as at some point that is already something to be proud of and confident about.</p><p>I wish this last thought would be so easy to tell myself when impostor syndrome kicks in to make it fade away. But some rational thoughts are not so easy when one is in crisis mode. I guess it&#8217;s a process. One thing for sure: it&#8217;s getting better now, compared to a few years ago, as I slowly build more confidence through experience, discuss the topic with others, and by analyzing myself to be better equipped in dealing with impostor syndrome. </p><p><span>Until next time,</span><br><span>&#9996;&#127997;</span></p><div><hr></div><p style="text-align: center;"><span>Thanks for reading! &#128578;&#127752;&#129719; </span><br><span>Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</span></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p style="text-align: center;"><a href="https://www.ilithya.rocks">ilithya.rocks</a><br><a href="https://courses.ilithya.rocks/">courses.ilithya.rocks</a><br><a href="https://shop.ilithya.rocks/">shop.ilithya.rocks</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Shader resources]]></title><description><![CDATA[One new, one old &#10024;]]></description><link>https://ilithya.substack.com/p/shader-resources</link><guid isPermaLink="false">https://ilithya.substack.com/p/shader-resources</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Mon, 25 May 2026 13:47:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oB_G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>This will be a short post. Just wanted to share some shader resources that have been on my radar lately. It&#8217;s two of them: one is new to me, and the other one I&#8217;ve known for some years, but I found myself browsing it again recently.<br><br>The first one feels a lot like the <a href="https://www.shadertoy.com">Shadertoy</a> playground by <a href="https://iquilezles.org">Inigo Quilez</a>, it&#8217;s called <a href="https://fragcoord.xyz">FragCoord.xyz</a> and was created by <a href="https://www.xordev.com">Xor</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oB_G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 424w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 848w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oB_G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png" width="1456" height="891" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:891,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2706258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/199185367?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 424w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 848w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oB_G!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59e30401-dfcf-4031-84b3-2e01117bf356_2476x1516.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">FragCoord.xyz explore page screenshot, May 2026.</figcaption></figure></div><p>I&#8217;ve especially been enjoying the <a href="https://fragcoord.xyz/explore">explore section</a> to browse inspiration and it&#8217;s cool it has a little section with <a href="https://fragcoord.xyz/docs#learn">learning material</a> to experiment with fragment shaders.</p><p>The other resource I wanted to share is <a href="https://godotshaders.com">Godot Shaders</a> by Peter H&#246;glund.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ZrOM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ZrOM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png" width="1456" height="872" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:872,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:291005,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/199185367?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZrOM!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F145ea203-83b2-4826-9664-5b1837f96c76_2596x1554.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Godot Shaders snippets page screenshot, May 2026.</figcaption></figure></div><p>While I came across this resource a few years ago, I still find myself browsing the snippets page from time to time for some useful tips like <a href="https://godotshaders.com/snippet/blending-modes/">blending modes</a> or drawing a <a href="https://godotshaders.com/snippet/lines-between-points/">line between points</a>.</p><p><br>Until next time,<br>&#9996;&#127997;</p><div><hr></div><p style="text-align: center;">Thanks for reading! &#128578;&#127752;&#129719; <br>Subscribe for free if you&#8217;re reading this on the web, and prefer to receive new posts in your mailbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p style="text-align: center;"><a href="https://www.ilithya.rocks">ilithya.rocks</a><br><a href="https://courses.ilithya.rocks/">courses.ilithya.rocks</a><br><a href="https://shop.ilithya.rocks/">shop.ilithya.rocks</a></p>]]></content:encoded></item><item><title><![CDATA[Course update + two free lessons + struggles]]></title><description><![CDATA[Introduction to pixel shaders &#127873;]]></description><link>https://ilithya.substack.com/p/course-update-two-free-lessons-struggles</link><guid isPermaLink="false">https://ilithya.substack.com/p/course-update-two-free-lessons-struggles</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Fri, 15 May 2026 22:10:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pjKU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>I wanted to share with you the exciting updates I&#8217;m currently working on for my shader course, and also disclose some of the struggles, because why not.</p><p>I feel that many times we read and watch in social media so much about everything is going well, is wonderful, is beautiful, that in order to feel real, I sometimes lean towards feeding myself also from content that talks about hard times and struggles, and so I wanted to share a bit of these two worlds in this post.</p><h2><br>Course subtitles</h2><p>One of the course updates I&#8217;ve already announced I was doing was including subtitles translations, which by the way, is taking longer than expected as even when I&#8217;m using AI to increase the speed for this task, I&#8217;m super frustrated until now by the results that read so robotic-like, and loose a bit of that human touch I gave when I recorded it in English.</p><p>In case you&#8217;re curious, in my research and explorations the most decent models for translations I got, for the power capabilities of my computer, have been a mix of <em>DeepL</em> and <em>Kimi K2.5</em>.<strong> If you know of any other capable models for specifically translations, happy to hear. I&#8217;d love to try, so please share! </strong></p><p>I&#8217;m hoping AI could help me to do this arduous task, because translating 26 videos into my native language (Spanish) could take forever, and if I had a salary for this I&#8217;d be into it, but there is so much time I can spend already in this passion project which is not paying my rent unfortunately (it&#8217;ll be a dream, if so). Anyways, I also want to translate in other languages as well, and I cannot complain that exploring such capabilities of AI is fun for me too!</p><h2><br>Video transcripts</h2><p>Around the same time I was frustrated about not advancing as much as I wanted with the translations, I decided to add video transcripts to each lesson in my course too. </p><p>This was another feature I had the ambition of adding ever since I created the course, but also was debating if it was worth the extra time it&#8217;ll take me to do so. I always wonder about so many other creators out there, how can you decide how much of your time that doesn&#8217;t make you money you can spare on things that make you happy, specially if you don&#8217;t have a corporate or steady job, and need to pay bills, you know. Maybe it was partially my impostor syndrome, telling me no one would care about my course anyways (need to write about this topic another time).</p><p>Anyways, I pulled myself together and I manage to get started with it, and is coming along really well. :) I&#8217;ve always been a fan of video courses that include transcripts or written content. Specially the course from Bruno Simon, <em><a href="https://threejs-journey.com">Three.js Journey</a></em> was a huge inspiration. This course is brilliant not only because of the way Bruno can explain this topic so well, but the quality of his content where every video has a transcript very well documented. </p><p>I had the unfortunate case that when I was invited to create this course by <em>the Academy by Blind Gallery</em> my only computer available was an old computer at that point, that whenever I do shaders for a long time, my fans start heating up, and to record the course I had no only an online editor opened to do shaders, but also <em>OBS</em> to record myself, slides, etc, that the <em>fps</em> of the video recording dropped very quickly and my lips are unsync on camera. </p><p>This was another journey I took beginning of this year, trying to fix that myself in <em>DaVinci Resolve</em>, <em>Blender</em> (yes, you heard well, you can also do video editing there), and <em>CapCut</em>, but nothing really worked. I think it&#8217;s hard to fix and I&#8217;m no video editor, that at some point I thought maybe I can re-record myself, but who am I kidding, I&#8217;m still sitting in this even older computer now, plus recording 26 videos took me 2 months of planning each video, and re-recording whenever it didn&#8217;t look good, because I looked or sounded too tired (gosh, it&#8217;s quite a task to also have to think of that when one records a video instead of writing a tutorial), that I rather let it be, but hence video transcripts seemed even more appealing! as with them everyone will have the chance now to go through the written content after watching the video and use them as notes to revisit any of the topics I&#8217;m teaching, and in there there won&#8217;t be any low quality resolution happening. :D </p><p><strong>Btw. if anyone reading this is a video editor and you think you can fix my unsync lips, reach out. Happy to compensate your work, ofc.</strong></p><p>I&#8217;m very happy now how this is turning out, and feel more confident that this is a great resource for anyone wanting to either learn shaders or solidify their fundamentals, as the feedback I&#8217;ve gotten so far from the learning content, as I mentioned in another post, has being very positive.</p><h2><br>Free shader course lessons</h2><p>For this reason, I decided to make two lessons completely free so anyone can:</p><p>&#128105;&#127997;&#8205;&#127979; See my teaching style<br>&#129299; Learn something new<br>&#127752; Give me some feedback</p><p>These are the only free lessons I&#8217;m opening. The full course contains 24 lessons and many, many hours of work (as you read), but I wanted to give something back to the open source and shader community learning space, while also letting people preview the course properly.</p><p>I&#8217;m so thankful for free resources to learn shaders like <em><a href="https://thebookofshaders.com">The Book of Shaders</a></em>, where I started my shader journey once upon a time. Grateful that Patricio Gonzalez Vivo and Jen Lowe created such a valuable resource openly. That now as I start making more content, I feel like sharing some of it as well.</p><p>The first lesson I&#8217;m opening publicly is called <em><a href="https://courses.ilithya.rocks/p/courses/intro-to-shaders/3486602-module-02-color/11410544-07-rgb-color-model">RGB color model</a> </em>and goes through the following topics:</p><ul><li><p>Additive color theory</p></li><li><p>RGB with percentage values</p></li><li><p>Pixel (fragment) shader template</p></li><li><p>HTML in the template</p></li><li><p>JavaScript in the template</p></li><li><p>Hello world with coding </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!pjKU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pjKU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:729540,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/197753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!pjKU!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc812b2-f91f-45b3-9610-351cc7690d48_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">RGB color model lesson from Introduction to pixel shaders.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!RRVK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!RRVK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:945474,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/197753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RRVK!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a0a805-1750-4043-a280-15fc449fbf37_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Additive color theory topic from RGB color model lesson.</figcaption></figure></div><p>The second lesson is <a href="https://courses.ilithya.rocks/p/courses/intro-to-shaders/3486602-module-02-color/11410514-08-luminosity-gradients">Luminosity gradients</a> and contains the following:</p><ul><li><p>Pixel (fragment) shader template</p></li><li><p>Coloring with UV coordinates</p></li><li><p>Darkness in color</p></li><li><p>Lightness in color</p></li><li><p>Color spectrum with lightness and darkness</p></li><li><p>Coloring with UV coordinates and percentage values</p></li><li><p>Mirror effect </p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vR6H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vR6H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:691498,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/197753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vR6H!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F395d5fee-767f-4d75-828a-fe92495eeddb_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Luminosity gradients lesson from Introduction to pixel shaders.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hdxX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hdxX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:947864,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/197753464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hdxX!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe92befcd-b326-45d2-b6c7-93b89cad081a_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Luminosity gradients lesson content.</figcaption></figure></div><h2><br>Final thoughts</h2><p>A reminder that if you&#8217;ve been wanting to learn shaders or feel intimidated by their complexity, this might be for you. Also if you&#8217;re already experienced in shaders, but feel unsure or stuck sometimes, lacking fundamentals. Either way, I&#8217;m here to guide you through every step of the way in the beginning of your fragment shader journey. </p><p>This was a long post! if you&#8217;re still reading, I appreciate you taking some time of your day to read me. If you think this might be valuable for someone else, please share it with them.</p><p>Until next time,<br>&#9996;&#127997;</p><div><hr></div><p style="text-align: center;">Thanks for reading! &#128578;&#127752;&#129719; <br>Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p style="text-align: center;"><a href="https://www.ilithya.rocks">ilithya.rocks</a><br><a href="https://courses.ilithya.rocks/">courses.ilithya.rocks</a><br><a href="https://shop.ilithya.rocks/">shop.ilithya.rocks</a></p>]]></content:encoded></item><item><title><![CDATA[Shader course relaunch]]></title><description><![CDATA[Introduction to pixel shaders is back &#128578;]]></description><link>https://ilithya.substack.com/p/shader-course-relaunch</link><guid isPermaLink="false">https://ilithya.substack.com/p/shader-course-relaunch</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Wed, 08 Apr 2026 18:47:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jIuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>I hope you&#8217;re having a good year so far. Can you believe it&#8217;s already April, where does time goes? Spring is here in Germany, and as much as I missed the sun because we had a rough winter, I definitively didn&#8217;t miss the spiders &#128579;</p><p>I wanted to share the news with you, if you haven&#8217;t heard yet, that I just relaunched my <strong><a href="https://courses.ilithya.rocks/intro-to-shaders">Introduction to pixel shaders</a></strong> course &#129395;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jIuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jIuD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:735587,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/193580740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!jIuD!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1df5db3d-078d-4476-852f-d55dc8cd53fd_1920x1200.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Soft launch early bird offer $65 USD ($90 regular).</figcaption></figure></div><p>Find this and future educational content by me on my subdomain <a href="https://courses.ilithya.rocks/">courses.ilithya.rocks</a>.</p><p>On the autumn of 2024 I released this course at the <em>Academy by the Blind Gallery</em>. Unfortunately the <em>Academy</em> is closing down, and the course will no longer be available there. </p><p>Nevertheless, ever since I crafted this full-fledged basic shader course I promised a lifetime access, so there&#8217;s a bright side in this situation &#8212; I was able to move the course into my own platform, and this means I have now full control of it! :) </p><p>I&#8217;m very happy to have received only positive reactions in regards the content of this course. Hence I&#8217;m still here. </p><p>There was some feedback about platform improvements, so after testing many places for months, I decided to join <em>Podia</em> which gives independent creators like me, full freedom within a stable platform for making educational content. Specially as I plan to create more courses and workshops in the future. </p><p>Everyone who was at the <em>Academy</em> has already been invited for free access of the course in the new platform, so no need to worry about paying anything again if you already did once.</p><p>I re-edited the videos and among a few other additions, english subtitles are now included (corrected manually by me), as well as a private community to ask any questions or engage in discussions.</p><p>Full course features:</p><p>&#128250; 24 video lessons<br>&#128218; 5 content modules<br>&#128221; Quiz in each module<br>&#19913; Subtitles in English<br>&#129518; Beginner friendly<br>&#128172; Private community <br>&#128176; One time payment<br>&#129534; Invoice availability<br>&#127881; Certificate of completion<br>&#128330;&#65039; Access forever</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!MV2m!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!MV2m!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:409869,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/193580740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!MV2m!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99a69f78-da5e-45fa-bf9e-a7b71758b695_1920x1200.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Learn fragment shaders in a new way that helps you truly understand the fundamentals.</figcaption></figure></div><p>A little bit about the course: I designed it for beginners eager to dive into the world of computational thinking and creative coding with pixel shaders, referred to as fragment shaders in GLSL, and also for people who aren&#8217;t beginners, but still struggle with a solid foundation on fragment shaders.</p><p>When I started to get curious about shaders back in 2019, I was so intimidated by the code and shader community, despite being a <em>front-end developer</em> and <em>designer</em> at the time, that it took me a whole year to dare try learning it. And then a couple of years to even understand what I was doing when blindly testing code as I tried writing GLSL. I was able to grasp and understand pieces of it, but I was puzzled. I felt like the understanding of shaders in my head was like the pieces of a puzzle on a table that haven&#8217;t been put together, but you&#8217;re trying hard to find pieces that match. </p><p>There was some knowledge here and there, but not a real click. It took a long time in my head to make a click, and when it did I thought, OMG I wish someone would have told me this when I got started, so I didn&#8217;t need to decipher the puzzle alone over years&#8230; hence around 2022 I was glad to put this new knowledge I gathered from shaders out there in shape of workshops and writings. The response was so great, even when I felt my way of explaining might seem rare, as no one ever explains fragment shaders that way, at least in no tutorial or workshop I ever read or watched, that making a course back in 2024 felt right.</p><p>As I revisited all this course beginning of 2026 to relaunch it, I could see that this knowledge is still very current and will continue serving others getting started with fragment shaders in GLSL. It&#8217;s my hope to help others overcome that arduous struggle at first, and speed-up the landing in that amazing gratifying space I ended up once I felt I could control and understand well what was I doing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!1zG3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!1zG3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:576181,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/193580740?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!1zG3!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0cfd785-88df-4b0e-bacb-8ea4d0c9d087_1920x1200.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Positive course reception from experienced artists, developers and designers.</figcaption></figure></div><p>What once upon a time felt intangible and so far away to hold, as if shaders were a magic black box belonging only to the math wizards, computer science engineers, or PhD students, is now a very much tangible and satisfying tool to use when making my art with code. </p><div><hr></div><p style="text-align: center;">Thanks for reading! &#128578;&#127752;&#9996;&#127997; <br>Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Shader artwork shop]]></title><description><![CDATA[Happy holidays! &#129395;]]></description><link>https://ilithya.substack.com/p/shader-artwork-shop</link><guid isPermaLink="false">https://ilithya.substack.com/p/shader-artwork-shop</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Thu, 25 Dec 2025 17:01:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_6xO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dear readers,<br><br>Happy holidays! &#129395; If you&#8217;re celebrating Christmas, then I also wish you a Merry Christmas &#127876; </p><p>I hope you&#8217;re enjoying this time of the year getting cozy, chilling, eating yummi things, surrounded by loved ones.</p><p>It&#8217;s been a while since you last hear from me, but I am hoping to get back at writing a bit about shaders as of next year, 2026.</p><p>In the meantime, I wanted to share with you some news about a current project related to shaders. :)</p><h2>Shader artwork shop</h2><p>I recently launched an online shop to offer fine art prints of my shader artwork. I&#8217;ve been thinking about doing something physical for some years with my work, since I love and have big nostalgia of the &#8217;90s, when we used to be less digital. And finally, was able to bring this little dream to reality. </p><p>If you&#8217;ve followed my work as an artist, in the recent years I&#8217;ve been collaborating with museums and galleries in Germany and Spain to bring my shader work into the fine art space as live performances and real-time installations. In the last exhibit I took part, I met several artists working with analog art, as pen plotter art, sculptures, and painting in canvas. This inspired me greatly, that I decided to try printing some of my shader work in fine art paper as museum-quality archival gicl&#233;e prints.</p><p>I curated a selection of 4 artworks for this project, from my <em>#anydayshaders</em> series I post frequently on social media. I chose pieces that bring me peace and feel hypnotic, as in my practice I draw psychedelic visions of what&#8217;s on my mind by experimenting with puzzling together computation and procedural programming. I really enjoy exploring themes of sanity along with consciousness states when I create artwork, intending to provoke hypnotic sensations, and aspiring to mesmerize and trigger inner peace, the exact same way it makes feel when I&#8217;m making it.</p><p>If you ever wonder, how do I even begin to draw such abstract work with shaders, well I take tons of inspiration from life experiences, sound, surrealism, and the abstract. Every time I sit in my laptop to draw, I shape and layer moving forms with color palettes directed by my emotions. It&#8217;s always very therapeutic for me to do this. There is something about algorithms, math, color, noise and patterns that relaxes me and gives me great joy &#128524;</p><p>Check my shop and browse those 4 spoken artworks, each as a unique collection of 50 high-quality gicl&#233;e prints (in two sizes) on 100% cotton Hahnem&#252;hle textured matte paper, 350 gsm, that come with a certificate of authenticity, and are individually signed and numbered on the back.</p><p>&#128279; <a href="https://shop.ilithya.rocks/">shop.ilithya.rocks</a></p><p>Here I&#8217;ll share some photos of the process, as I decided to be involved in every step of the manufacturing process.</p><p>When you order a print, it&#8217;s print-on demand, so I go to a local in-house fine art print shop I found in the city where I live, working with museums and galleries. This was very important to me, as I wanted to be able to witness the whole printing process and support a local business in my area.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_6xO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_6xO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg" width="274" height="321.0467032967033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1706,&quot;width&quot;:1456,&quot;resizeWidth&quot;:274,&quot;bytes&quot;:3520060,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/182567805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!_6xO!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14f718cb-839c-4c91-8c7b-38e81181741c_3022x3541.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169;] ilithya&#8217;s shader artwork printing process</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!1zyj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!1zyj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg" width="276" height="412.6730769230769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2177,&quot;width&quot;:1456,&quot;resizeWidth&quot;:276,&quot;bytes&quot;:2842079,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/182567805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!1zyj!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08b75e95-8be8-473b-93df-7936e0055a73_2378x3555.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169;] ilithya&#8217;s shader artwork drying process</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rZDq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rZDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg" width="436" height="265.9120879120879" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:888,&quot;width&quot;:1456,&quot;resizeWidth&quot;:436,&quot;bytes&quot;:2832826,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ilithya.substack.com/i/182567805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!rZDq!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d9611d4-3533-4828-ab4b-cc51b9f9aa05_3763x2296.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169;] ilithya&#8217;s shader artwork cutting process</figcaption></figure></div><p>After the prints area ready, I pick them up, sign them and package them in order to ship them to you securely with a tracking a number. I am shipping domestically and internationally!</p><p>As a token of appreciation for following my work, I want to offer you a small discount on higher-priced collections with this code: <em>4NEWSLETTERFRIENDS</em>. The code expires in January 20, 2026.</p><p>Until next time!</p><div><hr></div><p style="text-align: center;">Thanks for reading! &#128578;&#127752;&#9996;&#127997; <br>Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/ilithya.substack.com/subscribe"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Shaders in sketches — Distance]]></title><description><![CDATA[Hola, It&#8217;s been a while since the last time, but it&#8217;s shader time!]]></description><link>https://ilithya.substack.com/p/shaders-in-sketches-distance</link><guid isPermaLink="false">https://ilithya.substack.com/p/shaders-in-sketches-distance</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Thu, 21 Sep 2023 12:37:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vcM5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>It&#8217;s been a while since the last time, but it&#8217;s shader time!<br><br>If you haven&#8217;t read my previous issue, read it <a href="/__u/ilithya.substack.com/p/shaders-in-sketches-length">here</a>. And the very first one was published on my <a href="https://www.ilithya.rocks/blog/shaders-in-sketches-step/">blog</a>.<br><br>After the last GLSL function explored in this 'Shaders in sketches' series &#8212; <code>length()</code>, I thought continuing with <code>distance() </code>would make sense.<br></p><h3>Distance function</h3><p>Let's travel through the <code>distance()</code> function, which calculates the distance between two points:</p><pre><code><code>distance(p0, p1)   </code></code></pre><p>The links in the references below give us a description of this GLSL function:<br><strong>distance returns the distance between the two points p0 and p1.</strong></p><p>But what does that mean? Like with <code>length()</code>, my&nbsp;<em>aha moment</em>&nbsp;arrived once I visualized the function as an abyss in the middle of a space (the distance between two points) &#8212; a luminosity gradient going from dark (abyss) to light (space) but with an additional element in the mix &#8212; a range slider to move the abyss on a specific coordinate space.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vcM5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vcM5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg" width="398" height="490.39285714285717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:398,&quot;bytes&quot;:2039301,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!vcM5!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e6581c6-7a47-41ca-8b67-e4b86d0f3090_1998x2462.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL distance function: p0 = x</figcaption></figure></div><p>If we center our coordinate system to have a&nbsp;<code>0</code>&nbsp;value in the middle of our screen, and take the x-coordinate as the first point (<code>p0</code>) to use in the <code>distance()</code> function including a floating-point number of <code>0.25</code> as the second point (<code>p1</code>), we can imagine a flat vertical abyss of darkness in the right half of the screen. The abyss wouldn&#8217;t be a solid block of color but more of a murkiness eroding in light, appearing visually as two linear gradients mirrored together. The imaginary range slider (<code>p1</code>) allows us to move the abyss along its x-coordinate (<code>p0</code>), thus if we&#8217;d like to have our abyss centered, we&#8217;d assign a <code>0.0</code> to <code>p1</code>.</p><p>To visualize instead a flat horizontal abyss of murkiness at the top of the screen, we&#8217;d assume our first point (<code>p0</code>) in the distance() function is the y-coordinate, and the second point (<code>p1</code>), aka imaginary range slider, a value of <code>0.25</code>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LKi4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LKi4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg" width="398" height="533.309065934066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1951,&quot;width&quot;:1456,&quot;resizeWidth&quot;:398,&quot;bytes&quot;:2032092,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!LKi4!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0262597a-b8b0-41d0-afb0-06a4ac169114_1910x2560.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL distance function: p0 = y</figcaption></figure></div><p>On the other hand, if we use a two-dimensional vector as <code>p0</code>, our imaginary abyss would no longer be flat but round, considering both coordinates in the space. It&#8217;ll still be an abyss, but a circular one, like a black hole that gradually dissipates towards the light, forming a radial gradient between a dark and a light color on our screen. Our <code>p1</code>, in this case, would no longer be a floating-point value but also a two-dimensional vector, as in order to measure the distance between those two points, we need to have the same kind of vector. A vector <code>vec2(0.25, 0.0)</code> would then act as a range slider <code>(x, y)</code>, pushing our circular abyss to the right half of the screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!s79p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!s79p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg" width="398" height="482.46565934065933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1765,&quot;width&quot;:1456,&quot;resizeWidth&quot;:398,&quot;bytes&quot;:2016487,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!s79p!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe96ac2a5-39df-4240-af9e-ee9a93d40dab_2025x2455.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL distance function: p0 = xy</figcaption></figure></div><p>No matter if our points to measure,&nbsp;<code>p0 and p1,</code>&nbsp;are one-dimensional or two-dimensional vectors, think of an imaginary abyss portrayed as two mirrored linear gradients or a radial gradient emerging from the center of the first point (<code>p0</code>) vector if your coordinate space is centered. In addition to picturing a range slider (second point &#8212; <code>p1</code>) for moving such an abyss over the <code>p0</code> coordinate vector. As long as I imagine such gradient(s) with a range slider whenever I use this function, I can make a clear picture of what that code will draw.<br><br>References:</p><ul><li><p><a href="https://thebookofshaders.com/glossary/?search=distance">Book of Shaders</a></p></li><li><p><a href="https://registry.khronos.org/OpenGL-Refpages/gl4/html/distance.xhtml">Khronos Wiki</a></p></li></ul><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! &#128578;&#127752;&#9996;&#127997; Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Shaders in sketches — Length ]]></title><description><![CDATA[Hola, Hope you&#8217;ve been enjoying the summer or winter wherever you find yourself around the world.]]></description><link>https://ilithya.substack.com/p/shaders-in-sketches-length</link><guid isPermaLink="false">https://ilithya.substack.com/p/shaders-in-sketches-length</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Fri, 21 Jul 2023 10:11:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola,</p><p>Hope you&#8217;ve been enjoying the summer or winter wherever you find yourself around the world. &#127774;&#10052;&#65039;</p><p>Let&#8217;s welcome the new subscribers to this tiny newsletter. :)</p><p>It&#8217;s shader time! If you haven&#8217;t read my previous issue, read it <a href="/__u/ilithya.substack.com/p/shaders-in-sketches-smoothstep">here</a>. And the very first one was published on my <a href="https://www.ilithya.rocks/blog/shaders-in-sketches-step/">blog</a>.</p><p>The following GLSL function to explore in this 'Shaders in sketches' series is <code>length()</code>. </p><h3>Length function</h3><p>Let's travel through the <code>length()</code> function, which calculates the length of a vector:</p><pre><code><code>length(x)   </code></code></pre><p>The links in the references below give us a description of this GLSL function:<br><strong>length returns the length of the vector.</strong></p><p>But what does that mean? My <em>aha moment</em> arrived once I visualized the function as an abyss in the middle of a space (the distance between two points) &#8212; a luminosity gradient going from dark (abyss) to light (space).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!8EWM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!8EWM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg" width="400" height="485.0993377483444" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1465,&quot;width&quot;:1208,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:670667,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!8EWM!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03121d61-8a56-4676-abce-e551fd47b25b_1208x1465.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL length function: x = x</figcaption></figure></div><p>For example, let&#8217;s take the coordinate <code>x</code> as a vector to measure with the <code>length()</code> function. If we center our coordinate space to have a <code>0</code> value in the middle of our screen, we can imagine a flat vertical abyss of darkness in the midpoint of that one-dimensional <code>x</code> vector. The abyss isn&#8217;t a solid block of color but more of a murkiness eroding in light, appearing visually as two linear gradients mirrored together.</p><p>We could do the same by calculating the <code>length()</code> of the coordinate <code>y</code>, where we assume instead to have a flat horizontal abyss of murkiness in the center of that one-dimensional <code>y</code> vector. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!G-tN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!G-tN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg" width="400" height="536.0723089564503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1631,&quot;width&quot;:1217,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:763426,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!G-tN!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcba37611-43cf-4e24-9b3a-26e7d7c1d3dd_1217x1631.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL length function: x = y</figcaption></figure></div><p>If we decide to measure the <code>length()</code> of a two-dimensional vector, per se, a <code>vec2(x, y)</code>, our imaginary abyss would no longer be flat but round, considering both coordinates in the space. It&#8217;ll still be an abyss, but a circular one, like a black hole that gradually dissipates towards the light, forming a radial gradient between a dark and a light color on our screen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BzOX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BzOX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg" width="400" height="515.8682634730538" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1723,&quot;width&quot;:1336,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:928060,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!BzOX!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064b839d-520b-42cd-8f32-d904324adca0_1336x1723.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL length function: x = xy</figcaption></figure></div><p>Whether <code>x</code> is a one-dimensional or two-dimensional coordinate, visualize an imaginary abyss portrayed as two mirrored linear gradients or a radial gradient emerging from the center of the measured vector if your coordinate space is centered. As long as I imagine such gradient(s) whenever I use this function, I can make a clear picture of what that code will draw.</p><p></p><p>References:</p><ul><li><p><a href="https://thebookofshaders.com/glossary/?search=length">Book of Shaders</a></p></li><li><p><a href="https://registry.khronos.org/OpenGL-Refpages/gl4/html/length.xhtml">Khronos Wiki</a></p></li></ul><p></p><div><hr></div><h3>Personal Projects</h3><p>Last week, I released my first long-form generative project as a collaboration with <a href="https://www.erinwajufos.digital/">Erin Wajufos</a>. It isn&#8217;t my usual trippy shader art, but a collection of architectural collages with some good old <a href="https://p5js.org/">p5.js</a> (we wanted to choose a technology where we both felt comfortable). &#127793;<br></p><p>It&#8217;s a nostalgic reflection of the Internet era from the '90s, which feels similar to entering the Web3 now.<br><br>If you&#8217;re into collecting NFT art, mints are still available on <a href="https://www.artblocks.io/collections/presents/projects/0x99a9b7c1116f9ceeb1652de04d5969cce509b069/441">Art Blocks</a>.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! &#128578;&#127752;&#9996;&#127997; Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Shaders in sketches — Smoothstep]]></title><description><![CDATA[Hola, Welcome to my tiny newsletter.]]></description><link>https://ilithya.substack.com/p/shaders-in-sketches-smoothstep</link><guid isPermaLink="false">https://ilithya.substack.com/p/shaders-in-sketches-smoothstep</guid><dc:creator><![CDATA[ilithya]]></dc:creator><pubDate>Thu, 29 Jun 2023 17:57:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9NtO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hola, <br></p><p>Welcome to my tiny newsletter. :)</p><p>If you're here, you're probably curious about pixel shaders as much as I am. My intention with it is to share my way of understanding GLSL code when I write shaders.</p><p>Shaders can be a rather complex and intimidating computer program to explore when one's new to it, but maybe it's all about perspective and how one can interpret the program pieces to make them work.</p><p>To begin with, I'll take you on a journey of a small series of short thoughts on how my brain works when it tries to explain to me some of the GLSL built-in functions. Perhaps my way of understanding can help you too.</p><p>On my <a href="https://www.ilithya.rocks/blog/shaders-in-sketches-step/">blog</a>, I published the first short post from this 'Shaders in sketches' series about <code>step()</code>. Now, it's time to talk about another GLSL function.</p><p>I suggest you read the post mentioned above if you haven't yet, as I'm going to assume you know some details of how a pixel shader works, to avoid being as repetitive.<br></p><h3>Smoothstep function</h3><p>Let's travel through the <code>smoothstep()</code> function, which performs a Hermite interpolation between two values:</p><pre><code><code>smoothstep(edge0, edge1, x)  </code> </code></pre><p>The links in the references below give us a description of this GLSL function:<br><strong>smoothstep performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1.</strong></p><p>But what does that mean? My <em>aha moment</em> arrived, once I visualized the function as two tall walls separating two sides with solid colors, and a middle ground between walls having a gradient luminosity going from dark (leaking from wall 0) to light (leaking from wall 1).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9NtO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9NtO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg" width="400" height="514.010989010989" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1871,&quot;width&quot;:1456,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:558375,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!9NtO!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd61c35f8-2817-402e-83fc-3ea8c8647ce1_1743x2240.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL smoothstep function: x = y</figcaption></figure></div><p>The two colors are black and white. Black when getting <code>0</code>, and white when getting <code>1</code>.</p><p>In this exemplification, if <code>smoothstep()</code> has a lower edge of <code>0.25</code> and an upper edge of <code>0.75</code>, we can assign a value of <code>0.0</code> to the edge that is closer to that floating-point number, in this case, is the lower edge (edge 0), and assign a value of <code>1.0</code> to the edge closer to this, being the upper edge (edge 1).</p><p>Once we've defined which edge has either a value of <code>0.0</code> or <code>1.0</code>, we can assign such value to all three values from the RGB color model as <code>vec3(0.0, 0.0, 0.0) = vec3(0.0)</code> representing the color black, and <code>vec3(1.0, 1.0, 1.0) = vec3(1.0)</code> representing the color white. We can think of the edge's values of <code>0.25</code> and <code>0.75</code> as two points in a coordinate space from where we construct imaginary walls to place those solid colors that won't pass these walls.</p><p>And the in-between happening from the coordinate space of <code>0.25 - 0.75</code> results in what is called a <em>Hermite interpolation</em> which in my mind is the moment that both walls let some of their solid colors leak a bit, forming a gradient color going in a direction starting from the lower edge up to the upper edge, equivalent to going from down to up in our screen.</p><p>To make even more sense of this <em>Hermite interpolation</em>, we can also think that if we choose an equal lower and upper edge of <code>0.4</code>, it would be nonexistent because we wouldn't have a gradient at all, imagining our two walls cemented from the same origin.</p><p>No matter if <code>x</code> is a linear coordinate or a distance between two or more points in a plane, build two imaginary walls splitting two colors to form a gradient in between. As long as I visualize such walls growing from two different <code>edges</code> whenever I use this function, I can make a clear picture of what that code will draw.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FeMW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_webp, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FeMW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg" width="410" height="553.6126373626373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1966,&quot;width&quot;:1456,&quot;resizeWidth&quot;:410,&quot;bytes&quot;:582632,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_424, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_848, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_1272, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!FeMW!, /__u/ilithya.substack.com/w_1456, /__u/ilithya.substack.com/c_limit, /__u/ilithya.substack.com/f_auto, /__u/ilithya.substack.com/q_auto:good, /__u/ilithya.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F497ebe51-4ed2-4c06-9b32-697c46be5734_1726x2330.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">[&#169; ilithya] Shader sketch of GLSL step function: x = length()</figcaption></figure></div><p>References:</p><ul><li><p><a href="https://thebookofshaders.com/glossary/?search=smoothstep">Book of Shaders</a></p></li><li><p><a href="https://registry.khronos.org/OpenGL-Refpages/gl4/html/smoothstep.xhtml">Khronos Wiki</a></p></li></ul><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://ilithya.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! &#128578;&#127752;&#9996;&#127997; Subscribe if you&#8217;re reading this on the web, and prefer to receive these posts in your mailbox.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>