aboutsummaryrefslogtreecommitdiff
path: root/projects
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-08-27 09:39:20 -0400
committerRaghuram Subramani <raghus2247@gmail.com>2025-08-27 09:39:20 -0400
commit1c42acca2491769a261de87be4904ba12ae5637e (patch)
treed4b9444d8d1a6b730f6629d09c45054f1b3d2508 /projects
parent18ffd40ca7445ad0c3012ed8610458294a16789c (diff)
.
Diffstat (limited to 'projects')
-rw-r--r--projects/autograd.html104
-rw-r--r--projects/bubbl.html94
-rw-r--r--projects/chip8emu.html94
-rw-r--r--projects/index.html117
-rw-r--r--projects/msg.html173
5 files changed, 582 insertions, 0 deletions
diff --git a/projects/autograd.html b/projects/autograd.html
new file mode 100644
index 0000000..4fe4ae0
--- /dev/null
+++ b/projects/autograd.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="description" content="RAGHURAM SUBRAMANI ~ COMPROMYSE | Hacker & Programmer">
+
+ <title>Autograd | COMPROMYSE</title>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
+ <link rel="manifest" href="/assets/favicon/site.webmanifest">
+
+ <link href="/assets/stylesheet.css" rel="stylesheet" />
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Jersey+15&display=swap" rel="stylesheet">
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/base16/ashes.min.css" defer>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
+ <script defer>hljs.highlightAll();</script>
+
+ </head>
+ <body class="bg-zinc-900 text-pink-300 font-['Jersey_15'] selection:text-pink-900 selection:bg-pink-100 lg:text-xl">
+ <div class="min-h-screen flex flex-col">
+
+ <nav class="w-full mx-auto mt-10">
+ <div class="flex flex-wrap items-center px-10 gap-4 text-center text-lg lg:text-2xl">
+
+ <a href="/" class="cursor-pointer font-bold hover:underline justify-center button">
+ COMPROMYSE
+ </a>
+
+ <div class="flex items-center gap-4 flex-wrap justify-center md:justify-left">
+ <a href="/projects" class="hover:underline">
+ [ PROJECTS ]
+ </a>
+
+ </div>
+
+ </div>
+</nav>
+
+
+ <div class="flex flex-grow flex-col py-8 px-14 items-center">
+
+ <div class="text-center flex flex-col gap-4 w-full max-w-100">
+ <h1 class="text-5xl font-semibold">Autograd</h1>
+ <div>
+ <h4 class="text-xl">An implementation of autograd / backpropagation.</h4>
+ <h6 class="text-center text-sm border-t-4 mt-2 py-1">Python</h6>
+ </div>
+
+ <a href="https://github.com/compromyse/autograd" target="_blank" class="button">SOURCE</a>
+ </div>
+
+ <div class="prose md:prose-lg lg:prose-2xl prose-pink prose-invert w-full max-w-256 pt-12">
+ <p>All you need to run a simple neural network using autograd is the following code:</p>
+
+<p>The code defines a data set <code>X</code>, expected output (or ground truth) <code>y</code>. It then trains the neural network by performing backward propagation (<code>.backward()</code>), then applies the calculated gradients through <code>.optimise()</code> along with a learning rate of <code>0.01</code>.</p>
+
+<p><pre><code class="py">from src.nn import MLP
+from src.loss import mse
+
+X = [
+ [ 0.0, 1.0, 2.0 ],
+ [ 2.0, 1.0, 0.0 ],
+ [ 2.0, 2.0, 2.0 ],
+ [ 3.0, 3.0, 3.0 ]
+]
+
+y = [ 1.0, -1.0, 1.0, -1.0 ]
+n = MLP(3, [ 4, 4, 1 ])
+
+for i in range(400):
+ pred = [ n(x) for x in X ]
+ loss = mse(y, pred)
+ loss.zero_grad()
+ loss.backward()
+ n.optimise(0.01)
+
+print(pred)
+</code></pre>
+</p>
+
+ </div>
+
+ </div>
+ <footer class="w-full pb-4 pt-12 px-8 text-sm md:text-lg">
+ <div class="text-center">
+ <p>The Quieter You Become, The More You Are Able To Hear.</p>
+ </div>
+</footer>
+
+
+ </div>
+ </body>
+</html>
+
+
diff --git a/projects/bubbl.html b/projects/bubbl.html
new file mode 100644
index 0000000..0ead19a
--- /dev/null
+++ b/projects/bubbl.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="description" content="RAGHURAM SUBRAMANI ~ COMPROMYSE | Hacker & Programmer">
+
+ <title>BUBBL | COMPROMYSE</title>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
+ <link rel="manifest" href="/assets/favicon/site.webmanifest">
+
+ <link href="/assets/stylesheet.css" rel="stylesheet" />
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Jersey+15&display=swap" rel="stylesheet">
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/base16/ashes.min.css" defer>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
+ <script defer>hljs.highlightAll();</script>
+
+ </head>
+ <body class="bg-zinc-900 text-pink-300 font-['Jersey_15'] selection:text-pink-900 selection:bg-pink-100 lg:text-xl">
+ <div class="min-h-screen flex flex-col">
+
+ <nav class="w-full mx-auto mt-10">
+ <div class="flex flex-wrap items-center px-10 gap-4 text-center text-lg lg:text-2xl">
+
+ <a href="/" class="cursor-pointer font-bold hover:underline justify-center button">
+ COMPROMYSE
+ </a>
+
+ <div class="flex items-center gap-4 flex-wrap justify-center md:justify-left">
+ <a href="/projects" class="hover:underline">
+ [ PROJECTS ]
+ </a>
+
+ </div>
+
+ </div>
+</nav>
+
+
+ <div class="flex flex-grow flex-col py-8 px-14 items-center">
+
+ <div class="text-center flex flex-col gap-4 w-full max-w-100">
+ <h1 class="text-5xl font-semibold">BUBBL</h1>
+ <div>
+ <h4 class="text-xl">An Operating System for The x86 Architecture.</h4>
+ <h6 class="text-center text-sm border-t-4 mt-2 py-1">C / C++ / ASM</h6>
+ </div>
+
+ <a href="https://github.com/compromyse/bubbl" target="_blank" class="button">SOURCE</a>
+ </div>
+
+ <div class="prose md:prose-lg lg:prose-2xl prose-pink prose-invert w-full max-w-256 pt-12">
+ <h2>Building</h2>
+
+<h4>Dependencies: Nix with flakes enabled and (optionally) direnv</h4>
+
+<p>After entering the devshell (with direnv or <code>nix develop</code>),</p>
+
+<p><pre><code class="sh">mkdir build &amp;&amp; cd build
+cmake -G Ninja ..
+ninja
+</code></pre>
+</p>
+
+<h2>Running</h2>
+
+<p><pre><code class="sh">ninja run # or run-headless or run-gdb
+</code></pre>
+</p>
+
+ </div>
+
+ </div>
+ <footer class="w-full pb-4 pt-12 px-8 text-sm md:text-lg">
+ <div class="text-center">
+ <p>The Quieter You Become, The More You Are Able To Hear.</p>
+ </div>
+</footer>
+
+
+ </div>
+ </body>
+</html>
+
+
diff --git a/projects/chip8emu.html b/projects/chip8emu.html
new file mode 100644
index 0000000..7e0aab0
--- /dev/null
+++ b/projects/chip8emu.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="description" content="RAGHURAM SUBRAMANI ~ COMPROMYSE | Hacker & Programmer">
+
+ <title>CHIP8Emu | COMPROMYSE</title>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
+ <link rel="manifest" href="/assets/favicon/site.webmanifest">
+
+ <link href="/assets/stylesheet.css" rel="stylesheet" />
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Jersey+15&display=swap" rel="stylesheet">
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/base16/ashes.min.css" defer>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
+ <script defer>hljs.highlightAll();</script>
+
+ </head>
+ <body class="bg-zinc-900 text-pink-300 font-['Jersey_15'] selection:text-pink-900 selection:bg-pink-100 lg:text-xl">
+ <div class="min-h-screen flex flex-col">
+
+ <nav class="w-full mx-auto mt-10">
+ <div class="flex flex-wrap items-center px-10 gap-4 text-center text-lg lg:text-2xl">
+
+ <a href="/" class="cursor-pointer font-bold hover:underline justify-center button">
+ COMPROMYSE
+ </a>
+
+ <div class="flex items-center gap-4 flex-wrap justify-center md:justify-left">
+ <a href="/projects" class="hover:underline">
+ [ PROJECTS ]
+ </a>
+
+ </div>
+
+ </div>
+</nav>
+
+
+ <div class="flex flex-grow flex-col py-8 px-14 items-center">
+
+ <div class="text-center flex flex-col gap-4 w-full max-w-100">
+ <h1 class="text-5xl font-semibold">CHIP8Emu</h1>
+ <div>
+ <h4 class="text-xl">An Emulator/Interpreter for CHIP-8.</h4>
+ <h6 class="text-center text-sm border-t-4 mt-2 py-1">C++</h6>
+ </div>
+
+ <a href="https://github.com/compromyse/autograd" target="_blank" class="button">SOURCE</a>
+ </div>
+
+ <div class="prose md:prose-lg lg:prose-2xl prose-pink prose-invert w-full max-w-256 pt-12">
+ <p><img src="https://github.com/compromyse/CHIP8Emu/assets/71056504/f87e9e73-f880-4d60-a61b-cdb40791211b" class="mx-auto" /></p>
+
+<h2>About The Project</h2>
+
+<p>CHIP8Emu is an emulator for the 1977 interpreter CHIP-8 written in C++. It aims to make games designed for the same playable on modern hardware.</p>
+
+<h2>Compilation &amp; Usage</h2>
+
+<p>For compilation, you need Clang, CMake, GNUMake, and SDL2. With them installed, run the following.
+<pre><code class="sh">mkdir build; cd build
+cmake ..
+make
+</code></pre>
+Replace <code>[scale]</code> with your preferred display scaling, <code>[delay]</code> with the your preferred delay, and <code>[ROM]</code> with the path to the game you intend to play.
+<pre><code class="sh">./chip8emu [scale] [delay] [ROM]
+</code></pre>
+</p>
+
+ </div>
+
+ </div>
+ <footer class="w-full pb-4 pt-12 px-8 text-sm md:text-lg">
+ <div class="text-center">
+ <p>The Quieter You Become, The More You Are Able To Hear.</p>
+ </div>
+</footer>
+
+
+ </div>
+ </body>
+</html>
+
+
diff --git a/projects/index.html b/projects/index.html
new file mode 100644
index 0000000..4696f4b
--- /dev/null
+++ b/projects/index.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="description" content="RAGHURAM SUBRAMANI ~ COMPROMYSE | Hacker & Programmer">
+
+ <title>PROJECTS | COMPROMYSE</title>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
+ <link rel="manifest" href="/assets/favicon/site.webmanifest">
+
+ <link href="/assets/stylesheet.css" rel="stylesheet" />
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Jersey+15&display=swap" rel="stylesheet">
+
+ </head>
+ <body class="bg-zinc-900 text-pink-300 font-['Jersey_15'] selection:text-pink-900 selection:bg-pink-100 lg:text-xl">
+ <div class="min-h-screen flex flex-col">
+
+ <nav class="w-full mx-auto mt-10">
+ <div class="flex flex-wrap items-center px-10 gap-4 text-center text-lg lg:text-2xl">
+
+ <a href="/" class="cursor-pointer font-bold hover:underline justify-center button">
+ COMPROMYSE
+ </a>
+
+ <div class="flex items-center gap-4 flex-wrap justify-center md:justify-left">
+ <a href="/projects" class="hover:underline">
+ [ PROJECTS ]
+ </a>
+
+ </div>
+
+ </div>
+</nav>
+
+
+ <div class="flex flex-grow flex-col">
+
+
+<div class="p-16">
+ <h1 class="text-5xl">PROJECTS</h1>
+ <p class="text-xl">Here's a bunch of things I've done.</p>
+</div>
+
+<div class="card-container">
+
+
+
+ <a href="/projects/msg" class="card-anchor button-inverted">
+ <div class="flex flex-col gap-2 pt-2 items-center items-center">
+ <p class="text-2xl font-semibold text-center">MSG</p>
+ <p class="text-xl text-center text-wrap">An incredibly opinionated, hackable, minimal Static Site Generator.</p>
+ </div>
+
+ <div class="text-center text-sm border-t-2 mt-3 py-1">C</div>
+ </a>
+
+
+
+ <a href="/projects/bubbl" class="card-anchor button-inverted">
+ <div class="flex flex-col gap-2 pt-2 items-center items-center">
+ <p class="text-2xl font-semibold text-center">BUBBL</p>
+ <p class="text-xl text-center text-wrap">An Operating System for The x86 Architecture.</p>
+ </div>
+
+ <div class="text-center text-sm border-t-2 mt-3 py-1">C / C++ / ASM</div>
+ </a>
+
+
+
+ <a href="/projects/chip8emu" class="card-anchor button-inverted">
+ <div class="flex flex-col gap-2 pt-2 items-center items-center">
+ <p class="text-2xl font-semibold text-center">CHIP8Emu</p>
+ <p class="text-xl text-center text-wrap">An Emulator/Interpreter for CHIP-8.</p>
+ </div>
+
+ <div class="text-center text-sm border-t-2 mt-3 py-1">C++</div>
+ </a>
+
+
+
+ <a href="/projects/autograd" class="card-anchor button-inverted">
+ <div class="flex flex-col gap-2 pt-2 items-center items-center">
+ <p class="text-2xl font-semibold text-center">Autograd</p>
+ <p class="text-xl text-center text-wrap">An implementation of autograd / backpropagation.</p>
+ </div>
+
+ <div class="text-center text-sm border-t-2 mt-3 py-1">Python</div>
+ </a>
+
+
+
+</div>
+
+
+ </div>
+
+ <footer class="w-full pb-4 pt-12 px-8 text-sm md:text-lg">
+ <div class="text-center">
+ <p>The Quieter You Become, The More You Are Able To Hear.</p>
+ </div>
+</footer>
+
+
+ </div>
+ </body>
+</html>
+
+
diff --git a/projects/msg.html b/projects/msg.html
new file mode 100644
index 0000000..3b30c62
--- /dev/null
+++ b/projects/msg.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
+ <meta name="description" content="RAGHURAM SUBRAMANI ~ COMPROMYSE | Hacker & Programmer">
+
+ <title>MSG | COMPROMYSE</title>
+
+ <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
+ <link rel="manifest" href="/assets/favicon/site.webmanifest">
+
+ <link href="/assets/stylesheet.css" rel="stylesheet" />
+
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Jersey+15&display=swap" rel="stylesheet">
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/base16/ashes.min.css" defer>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"></script>
+ <script defer>hljs.highlightAll();</script>
+
+ </head>
+ <body class="bg-zinc-900 text-pink-300 font-['Jersey_15'] selection:text-pink-900 selection:bg-pink-100 lg:text-xl">
+ <div class="min-h-screen flex flex-col">
+
+ <nav class="w-full mx-auto mt-10">
+ <div class="flex flex-wrap items-center px-10 gap-4 text-center text-lg lg:text-2xl">
+
+ <a href="/" class="cursor-pointer font-bold hover:underline justify-center button">
+ COMPROMYSE
+ </a>
+
+ <div class="flex items-center gap-4 flex-wrap justify-center md:justify-left">
+ <a href="/projects" class="hover:underline">
+ [ PROJECTS ]
+ </a>
+
+ </div>
+
+ </div>
+</nav>
+
+
+ <div class="flex flex-grow flex-col py-8 px-14 items-center">
+
+ <div class="text-center flex flex-col gap-4 w-full max-w-100">
+ <h1 class="text-5xl font-semibold">MSG</h1>
+ <div>
+ <h4 class="text-xl">An incredibly opinionated, hackable, minimal Static Site Generator.</h4>
+ <h6 class="text-center text-sm border-t-4 mt-2 py-1">C</h6>
+ </div>
+
+ <a href="https://github.com/compromyse/msg" target="_blank" class="button">SOURCE</a>
+ </div>
+
+ <div class="prose md:prose-lg lg:prose-2xl prose-pink prose-invert w-full max-w-256 pt-12">
+ <p>See <a href="https://github.com/compromyse/compromyse.xyz">github.com/compromyse/compromyse.xyz</a> for an example site.</p>
+
+<h3>Compilation &amp; Usage</h3>
+
+<p><pre><code class="sh"># REQUIREMENTS: CMake, Git, GCC/Clang, GNUMake/Ninja
+$ git clone https://github.com/compromyse/msg
+$ mkdir build &amp;&amp; cd build
+$ cmake ..
+$ make # or ninja
+$ ./msg -h
+msg: The Minimal Static Site Generator
+
+Usage: ./msg [-h] [-w] [-v] [-o &lt;output&gt;] &lt;directory&gt;
+ -h : Help
+ -w : Watch working directory for changes
+ -v : Verbose
+ -o &lt;output&gt;: Output directory
+ &lt;directory&gt;: Working directory
+</code></pre>
+</p>
+
+<h3>Site Structure</h3>
+
+<p><pre><code class="sh">.
+├── assets
+│   └── me.webp
+├── config.cfg
+├── index.html
+├── partials
+│   ├── footer.html
+│   ├── navbar.html
+├── projects.html
+└── templates
+ └── base.html
+</code></pre>
+</p>
+
+<h3>Features</h3>
+
+<h4>Includes - include files from <code>/partials</code></h4>
+
+<p><pre><code class="html">&lt;!-- index.html --&gt;
+&lt;html&gt;
+ &lt;body&gt;
+ {{ include "navbar.html" }}
+ ...
+ &lt;/body&gt;
+&lt;/html&gt;
+</code></pre>
+</p>
+
+<h4>Contentfor - define content for templates</h4>
+
+<p><pre><code class="html">&lt;!-- templates/base.html --&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ {{ content "head" }}
+ &lt;/head&gt;
+ &lt;body&gt;
+ {{ body }}
+ &lt;/body&gt;
+&lt;/html&gt;
+
+&lt;!-- index.html --&gt;
+{{ contentfor "head" }}
+&lt;title&gt;HOME&lt;/title&gt;
+{{ endcontent }}
+
+&lt;p&gt;...&lt;/p&gt;
+</code></pre>
+</p>
+
+<h4>Eachdo - iterate over resources</h4>
+
+<p><pre><code class="html">&lt;!-- projects/xyz.html --&gt;
+title = XYZ
+---
+
+&lt;h1&gt;XYZ!&lt;/h1&gt;
+
+&lt;!-- index.html --&gt;
+{{ eachdo resources.projects }}
+&lt;p&gt;{{ put title }}&lt;/p&gt;
+{{ endeachdo }}
+</code></pre>
+</p>
+
+<h4>Template - specify template for page</h4>
+
+<p><pre><code class="html">&lt;!-- projects/xyz.html --&gt;
+template = base_tailwind.html
+---
+
+&lt;h1 class="p-2"&gt;XYZ!&lt;/h1&gt;
+</code></pre>
+</p>
+
+ </div>
+
+ </div>
+ <footer class="w-full pb-4 pt-12 px-8 text-sm md:text-lg">
+ <div class="text-center">
+ <p>The Quieter You Become, The More You Are Able To Hear.</p>
+ </div>
+</footer>
+
+
+ </div>
+ </body>
+</html>
+
+