summaryrefslogtreecommitdiffstats
path: root/_site/projects/matrix-digital-rain/index.html
diff options
context:
space:
mode:
Diffstat (limited to '_site/projects/matrix-digital-rain/index.html')
-rw-r--r--_site/projects/matrix-digital-rain/index.html47
1 files changed, 23 insertions, 24 deletions
diff --git a/_site/projects/matrix-digital-rain/index.html b/_site/projects/matrix-digital-rain/index.html
index 3c441d4..5218c10 100644
--- a/_site/projects/matrix-digital-rain/index.html
+++ b/_site/projects/matrix-digital-rain/index.html
@@ -53,15 +53,15 @@ Matrix in C, with zero dependencies—not even ncurses.</p>
<h2 id="overview">Overview</h2>
-<p>This is my fork of Domsson’s beautiful <a href="https://github.com/domsson/fakesteak" class="external" target="_blank" rel="noopener noreferrer">Fakesteak</a>. While studying the code, I wondered
-what it would take to faithfully recreate the original Matrix from the first
-movie without sacrificing the program’s minimalism and elegance.</p>
+<p>This is my fork of Domsson’s beautiful <a href="https://github.com/domsson/fakesteak" class="external" target="_blank" rel="noopener noreferrer">Fakesteak</a>. While going through his code, I
+wondered what it would take to faithfully recreate the original Matrix from the
+first movie without sacrificing its minimalism.</p>
-<p>My version adds:</p>
+<p>My implementation supports:</p>
<ul>
- <li>Unicode character support.</li>
- <li>Fully customizable 24-bit RGB (truecolor) colors.</li>
+ <li>Unicode characters.</li>
+ <li>24-bit RGB colors (truecolor).</li>
<li>Glitches in the matrix.</li>
<li>Ghosting effect of old monochrome CRT displays.</li>
<li>Closely resembles the Matrix seen in the background during Neo and Cypher’s
@@ -76,10 +76,10 @@ $ ./matrix
<h2 id="how-does-it-work">How does it work?</h2>
-<p>The program tracks the state of the terminal - characters, background and
-foreground colors, shading levels, cursor position - using multiple internal
-data buffers. On each frame, it updates these buffers and repaints the screen
-using ANSI escape codes:</p>
+<p>The program tracks the state of the terminal, such as code points, background
+and foreground colors, and cursor position, using multiple internal data
+buffers. On each frame, it updates these buffers and repaints the screen using
+ANSI escape codes:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>static void term_print(const matrix *mat, size_t row, size_t col)
{
@@ -94,8 +94,8 @@ using ANSI escape codes:</p>
}
</code></pre></div></div>
-<p>The ghosting effect, the signature feature of this implementation, works by
-scaling and mixing the RGB channels:</p>
+<p>The ghosting effect is achieved by carefully scaling the RGB
+channels before mixing them:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>static void mat_shade(matrix *mat, size_t row, size_t col)
{
@@ -107,25 +107,24 @@ scaling and mixing the RGB channels:</p>
}
</code></pre></div></div>
-<p>The ghosting function emulates the screen decay by gradually transitioning each
-raindrop’s color towards the background color. This approach provides two key
-benefits: straightforward color configuration that integrates naturally with
-Unix ricing (desktop customization) and high-fidelity recreation of the Matrix
-aesthetic.</p>
+<p>The ghosting function emulates the dim after glow by gradually transitioning
+each raindrop’s color towards the background color. This approach provides two
+key benefits: straightforward color configuration that integrates naturally
+with (Unix) ricing and high-fidelity recreation of the Matrix aesthetic.</p>
<h2 id="customization">Customization</h2>
-<p>While you can adjust almost every aspect, including its speed, glitch
-frequency, and rain density, the most useful settings for customization are the
-color scheme and character set.</p>
+<p>While you can alter almost every aspect, including speed, glitch frequency, and
+rain density, the most common customizations are the color scheme and character
+set.</p>
<p>There are three color settings: head, tail, and background. You can configure
-them by setting the <code class="language-plaintext highlighter-rouge">COLOR_*_RED</code>, <code class="language-plaintext highlighter-rouge">COLOR_*_GRN</code>, and <code class="language-plaintext highlighter-rouge">COLOR_*_BLU</code> definitions
-in main.c.</p>
+them using <code class="language-plaintext highlighter-rouge">COLOR_*_RED</code>, <code class="language-plaintext highlighter-rouge">COLOR_*_GRN</code>, and <code class="language-plaintext highlighter-rouge">COLOR_*_BLU</code> definitions found in
+main.c.</p>
<p>The <code class="language-plaintext highlighter-rouge">UNICODE_MIN</code> and <code class="language-plaintext highlighter-rouge">UNICODE_MAX</code> values control the Unicode block used. For
-example, setting them to <code class="language-plaintext highlighter-rouge">0x30A1</code> and <code class="language-plaintext highlighter-rouge">0x30F6</code> rains Katakana (if a font that
-supports Katakana is present on the system):</p>
+example, setting them to <code class="language-plaintext highlighter-rouge">0x30A1</code> and <code class="language-plaintext highlighter-rouge">0x30F6</code> rains Katakana, if a font that
+supports Katakana is present on the system:</p>
<p><img style="width: 100%;" src="katakana.png" /></p>