PageSourceSearch

https://peres.dev/projects

html peres.dev collected 2026-10-03 23:30:52 UTC 42,539 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="author" content="Leandro Peres"><meta http-equiv="X-UA-Compatible" content="chrome=1"><meta name="revisit-after" content="7 days"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><title>Projects | Leandro Peres</title>
1<script>!function(){const e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,t=localStorage.getItem("vueuse-color-scheme")||"auto";("dark"===t||e&&"light"!==t)&&document.documentElement.classList.toggle("dark",!0)}()</script>
1<script defer="" src="https://cloud.umami.is/script.js" data-website-id="dfa1ff7c-365d-477a-b347-3ac83695d67b"></script>
1<script type="module" crossorigin="" src="/assets/app-C692B4mk.js"></script>
1<link rel="modulepreload" crossorigin="" href="/assets/theme-Dr4Iz3jL.js"><link rel="stylesheet" crossorigin="" href="/assets/app-SQXpSZvJ.css"><link rel="modulepreload" crossorigin="" href="/assets/projects-OcaDACaM.js"><link rel="modulepreload" crossorigin="" href="/assets/WrapperPost-T4CHMcDa.js"><link rel="modulepreload" crossorigin="" href="/assets/FilterTabs-CM9qPV5f.js"><link rel="modulepreload" crossorigin="" href="/assets/ProjectThumb-C2a1Ro3i.js"><meta property="og:title" content="Projects | Leandro Peres"><meta name="twitter:title" content="Projects | Leandro Peres"><meta name="description" content="Engines, games, tools and emulators built by Leandro Peres since 2011."><meta property="og:description" content="Engines, games, tools and emulators built by Leandro Peres since 2011."><meta name="twitter:description" content="Engines, games, tools and emulators built by Leandro Peres since 2011."></head><body class="font-sans text-foreground relative"><div id="app" data-server-rendered="true"><!--[--><!----><header class="sticky top-0 z-10 bg-background print:static" data-v-d92746d2=""><div class="col flex items-center justify-between py-2.5 lg:py-7" data-v-d92746d2=""><a href="/" class="link text-base font-medium leading-[1.4]" data-v-d92746d2="">Leandro Peres</a><div class="hidden items-center gap-4 lg:flex" data-v-d92746d2=""><nav aria-label="Main" data-v-d92746d2=""><ul class="flex items-center gap-1" data-v-d92746d2=""><!--[--><li data-v-d92746d2=""><a aria-current="page" href="/projects" class="router-link-active router-link-exact-active block rounded-pill px-3 py-1.5 text-[15px] leading-[1.4] transition-colors duration-150 hover:bg-secondary bg-secondary" data-v-d92746d2="">Work</a></li><li data-v-d92746d2=""><a href="/#experience" class="block rounded-pill px-3 py-1.5 text-[15px] leading-[1.4] transition-colors duration-150 hover:bg-secondary" data-v-d92746d2="">Experience</a></li><li data-v-d92746d2=""><a href="/posts" class="block rounded-pill px-3 py-1.5 text-[15px] leading-[1.4] transition-colors duration-150 hover:bg-secondary" data-v-d92746d2="">Writing</a></li><li data-v-d92746d2=""><a href="/lab" class="block rounded-pill px-3 py-1.5 text-[15px] leading-[1.4] transition-colors duration-150 hover:bg-secondary" data-v-d92746d2="">Lab</a></li><!--]--></ul></nav><a href="mailto:[email protected]" class="btn-primary btn-sm" data-v-d92746d2="">Email me</a><button type="button" class="btn-icon" aria-label="Toggle color scheme" title="Toggle color scheme" data-v-d92746d2=""><span class="i-ph-sun dark:i-ph-moon h-4! w-4!" aria-hidden="true"></span></button></div><button type="button" class="btn-secondary px-4! lg:hidden" aria-controls="mobile-menu" aria-expanded="false" data-v-d92746d2="">Menu <span class="i-ph-list h-4! w-4!" aria-hidden="true" data-v-d92746d2=""></span></button></div><dialog id="mobile-menu" aria-label="Menu" class="menu m-0 h-full max-h-none w-full max-w-none border-0 bg-background p-0 text-foreground" data-v-d92746d2=""><div class="flex h-full flex-col" data-v-d92746d2=""><div class="flex items-center justify-between px-5 py-2.5" data-v-d92746d2=""><a href="/" class="text-base font-medium leading-[1.4]" data-v-d92746d2="">Leandro Peres</a><button type="button" class="btn-secondary px-4!" aria-label="Close menu" data-v-d92746d2="">Close <span class="i-ph-x h-4! w-4!" aria-hidden="true" data-v-d92746d2=""></span></button></div><nav aria-label="Main" class="px-5 pt-8" data-v-d92746d2=""><ul data-v-d92746d2=""><!--[--><li data-v-d92746d2=""><a aria-current="page" href="/projects" class="router-link-active router-link-exact-active flex items-center justify-between py-3.5 text-[32px] font-medium leading-[1.15]" data-v-d92746d2="">Work <span class="text-sm font-normal text-muted-foreground" data-v-d92746d2="">Current page</span></a></li><li data-v-d92746d2=""><a href="/#experience" class="flex items-center justify-between py-3.5 text-[32px] font-medium leading-[1.15]" data-v-d92746d2="">Experience <!----></a></li><li data-v-d92746d2=""><a href="/posts" class="flex items-center justify-between py-3.5 text-[32px] font-medium leading-[1.15]" data-v-d92746d2="">Writing <!----></a></li><li data-v-d92746d2=""><a href="/lab" class="flex items-center justify-between py-3.5 text-[32px] font-medium leading-[1.15]" data-v-d92746d2="">Lab <!----></a></li>
1<!--]--></ul></nav><div class="mt-auto flex flex-col gap-4 px-5 pb-8" data-v-d92746d2=""><div class="flex gap-2.5" data-v-d92746d2=""><a href="mailto:[email protected]" class="btn-primary flex-1" data-v-d92746d2="">Email me</a><a href="https://resume.peres.dev" target="_blank" rel="noopener" class="btn-secondary flex-1" data-v-d92746d2=""> Resume <span class="i-ph-download-simple h-4! w-4!" aria-hidden="true" data-v-d92746d2=""></span></a></div><div class="flex items-center justify-between gap-2" data-v-d92746d2=""><ul class="flex flex-wrap items-center gap-2" data-v-d92746d2=""><!--[--><li><a href="https://github.com/zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="GitHub profile" title="GitHub profile"><!--[--><span class="i-simple-icons-github h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://linkedin.com/in/leandroperes" target="_blank" rel="noopener" class="btn-icon" aria-label="LinkedIn profile" title="LinkedIn profile"><!--[--><span class="i-simple-icons-linkedin h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://www.youtube.com/@zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="YouTube channel" title="YouTube channel"><!--[--><span class="i-simple-icons-youtube h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://gamejolt.com/@SOHNE" target="_blank" rel="noopener" class="btn-icon" aria-label="Game Jolt profile" title="Game Jolt profile"><!--[--><span class="i-simple-icons-gamejolt h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://www.shadertoy.com/user/zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="Shadertoy profile" title="Shadertoy profile"><!--[--><span class="i-ph-shapes h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><!--]--></ul><button type="button" class="btn-icon" aria-label="Toggle color scheme" title="Toggle color scheme" data-v-d92746d2=""><span class="i-ph-sun dark:i-ph-moon h-4! w-4!" aria-hidden="true"></span></button></div></div></div></dialog></header><main id="top"><!--[--><!----><article class=""><!--[--><div><div><header class="page-intro"><h1 class="h-display">Projects</h1><p class="page-sub">Engines, games, tools and emulators I've built since 2011.</p></header><div class="flex flex-col gap-1 pt-6 lg:col lg:flex-row lg:items-center lg:justify-between lg:gap-4 lg:pt-10"><div role="group" aria-label="Filter projects by type" class="no-scrollbar flex gap-2 overflow-x-auto px-col"><!--[--><button type="button" aria-pressed="true" class="bg-primary text-primary-foreground inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">All <span class="text-primary-muted-foreground text-sm font-normal">26</span></button><button type="button" aria-pressed="false" class="bg-secondary text-foreground hover:bg-secondary-hover inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">Emulators <span class="text-secondary-muted-foreground text-sm font-normal">4</span></button><button type="button" aria-pressed="false" class="bg-secondary text-foreground hover:bg-secondary-hover inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">Engines <span class="text-secondary-muted-foreground text-sm font-normal">6</span></button><button type="button" aria-pressed="false" class="bg-secondary text-foreground hover:bg-secondary-hover inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">Games <span class="text-secondary-muted-foreground text-sm font-normal">8</span></button><button type="button" aria-pressed="false" class="bg-secondary text-foreground hover:bg-secondary-hover inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">Studies <span class="text-secondary-muted-foreground text-sm font-normal">3</span></button><button type="button" aria-pressed="false" class="bg-secondary text-foreground hover:bg-secondary-hover inline-flex shrink-0 items-center gap-1.5 rounded-pill px-3.5 py-2 text-[15px] font-medium leading-[1.4] transition-colors duration-150">Tools <span class="text-secondary-muted-foreground text-sm font-normal">5</span></button><!--]--></div><div class="px-col"><label class="relative inline-flex items-center"><span class="sr-only">Sort projects</span><select class="cursor-pointer appearance-none bg-transparent py-3 pr-6 text-[15px] font-medium leading-[1.4] lg:py-2"><option value="newest" selected="">Newest first</option><option value="oldest">Oldest first</option></select><span class="i-ph-caret-down pointer-events-none absolute right-0 h-4! w-4!" aria-hidden="true"></span></label></div></div><ul class="col flex flex-col gap-6 pt-4 lg:gap-10 lg:pt-10"><!--[--><li><a href="/projects/rhio" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">r</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">rhio</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2026–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2026–Present<!--[-->. <!--]--></span>Personal, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A single-header Render Hardware Interface for OpenGL, OpenGL ES and Vulkan</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C99</li><li class="tag">Vulkan</li><li class="tag">OpenGL ES</li>
1<!--]--></ul></div></a></li><li><a href="/projects/cix502" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">C</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Cix502</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2025</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2025<!--[-->. <!--]--></span>SOHNE</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">MOS 6502 emulator written in C99</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C99</li><li class="tag">6502</li>
1<!--]--></ul></div></a></li><li><a href="/projects/glasm" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/assets/2025-08-13-CEqwBqKR.png" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">GLASM</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2025</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2025<!--[-->. <!--]--></span>Personal, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">An OpenGL triangle renderer written in x64 NASM assembly</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">NASM</li><li class="tag">OpenGL</li><!--]--></ul></div></a></li><li><a href="/projects/ray-tracing-one-weekend" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/assets/2025-07-04-B3-wEdNo.jpeg" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Ray Tracing in One Weekend</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2025–2026</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2025–2026<!--[-->. <!--]--></span>Personal, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A C99 port of Peter Shirley's ray tracer</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C99</li><li class="tag">Ray tracing</li><!--]--></ul></div></a></li><li><a href="/projects/slidev-addon-cpp-runner" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="https://github.com/SOHNE/slidev-addon-cpp-runner/raw/main/.github/assets/screenshot-light.png" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">slidev-addon-cpp-runner</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2025</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2025<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Run C and C++ code inside Slidev presentations</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">TypeScript</li><li class="tag">Slidev</li><!--]--></ul></div></a></li><li><a href="/projects/cameboy" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/assets/2025-07-07-CP0aZrW4.gif" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">CameBoy</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2025–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2025–Present<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A minimalist Game Boy emulator written in C99</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C99</li><li class="tag">SDL2</li>
1<!--]--></ul></div></a></li><li><a href="/projects/actis" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">A</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Actis</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024–Present<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">WebGL library for fragment shaders, multipass rendering, and textures</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">TypeScript</li><li class="tag">WebGL</li><!--]--></ul></div></a></li><li><a href="/projects/ae6502" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">a</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">ae6502</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">MOS 6502 assembler and emulator written in TypeScript</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">TypeScript</li><li class="tag">6502</li>
1<!--]--></ul></div></a></li><li><a href="/projects/chip0u" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">C</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Chip0u</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">CHIP-8 interpreter written in C++20</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C++20</li><li class="tag">CHIP-8</li><!--]--></ul></div></a></li><li><a href="/projects/levegl" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><svg viewBox="0 0 300 300" class="prefix__iconAbove h-1/3 w-1/3" xmlns="http://www.w3.org/2000/svg"><rect fill="#d9d9d9" x="4.2" y="4.2" width="291.6" height="291.6" class="prefix__logo-background-square" ry="0" rx="0" stroke="#6A6A6A" stroke-width="9.7"></rect><rect x="2.7" y="153.4" width="294.5" height="143.8" class="prefix__logo-background-square" ry="0" rx="0" stroke="#6A6A6A" stroke-width="6.9" fill="#6A6A6A"></rect><path class="prefix__cls-2" d="M278.5 225.2a45.2 45.2 0 1 1-45.1-45 45 45 0 0 1 45 45m-257 43.7h88.3l-88.3-87.4Zm88.3 0H198l-88.3-87.4z" fill="#d9d9d9"></path></svg></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">LeveGL</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024–Present<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A simple rendering library for a simpler world</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C99</li><li class="tag">OpenGL ES</li><!--]--></ul></div></a></li><li><a href="/projects/run-coliru" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">R</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Run, Coliru! Run.</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024–Present<!--[-->. <!--]--></span>Personal, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A lightweight front-end for Coliru</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Next.js</li><li class="tag">Cloudflare</li>
1<!--]--></ul></div></a></li><li><a href="/projects/shader-one" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">S</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Shader.One</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024<!--[-->. <!--]--></span>SOHNE</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Fragment shader web-based editor</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">WebGL</li><li class="tag">GLSL</li><!--]--></ul></div></a></li><li><a href="/projects/vulkano" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" stroke="#6A6A6A" stroke-width="4" class="h-1/3 w-1/3"><path fill="#d9d9d9" d="M0 27.27h25.45l56.37 145.46H56.36Zm45.45 0L100 172.73l54.54-145.46H129.1L100 118.18l-29.08-90.9Zm129.1 0H200l-32.73 81.82h-25.45zm-38.19 100H160l-18.18 45.46h-23.64z" class="prefix__shape"></path></svg></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Vulkano</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2024–2025</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2024–2025<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A simple Vulkan rendering library</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C++</li><li class="tag">Vulkan</li><!--]--></ul></div></a></li><li><a href="/projects/deferred-jobs" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">D</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Deferred Jobs</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2023–2026</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2023–2026<!--[-->. <!--]--></span>Personal, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Delayed result gathering and time slicing in Unity and Unreal</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unreal</li><li class="tag">Unity</li><li class="tag">Multithreading</li><!--]--></ul></div></a></li><li><a href="/projects/dura2d" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="https://github.com/SOHNE/Dura2D/raw/main/res/dura2d.gif" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Dura2D</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2023–Present</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2023–Present<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">An educational 2D game physics engine, written in C++</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">C++</li><li class="tag">Physics</li><li class="tag">WebAssembly</li>
1<!--]--></ul></div></a></li><li><a href="/projects/game-da-cidadania" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">G</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Game da Cidadania</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2022–2023</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2022–2023<!--[-->. <!--]--></span>LabTIME/UFG</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Interactive civic education game for adolescents and young adults</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Shaders</li><li class="tag">Education</li><!--]--></ul></div></a></li><li><a href="/projects/simulador-arduino" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/projects/simulador-arduino/sketch.webp" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Simulador Arduino</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2022–2023</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2022–2023<!--[-->. <!--]--></span>LabTIME/UFG</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Real-time Arduino Uno and circuit simulator built in Unreal Engine 4</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unreal Engine 4</li><li class="tag">C++</li><!--]--></ul></div></a></li><li><a href="/projects/ilha-das-pedras-falantes" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">I</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Ilha das Pedras Falantes</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2021</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2021<!--[-->. <!--]--></span>LabTIME/UFG</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Educational game with virtual production cutscenes</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">HLSL</li><li class="tag">Virtual production</li><!--]--></ul></div></a></li><li><a href="/projects/parque-da-matematica" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">P</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Parque da Matemática</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2021–2022</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2021–2022<!--[-->. <!--]--></span>LabTIME/UFG</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Educational math puzzle game with XR support</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">XR</li><li class="tag">Education</li>
1<!--]--></ul></div></a></li><li><a href="/projects/colorblindness" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">C</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Colorblindness</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2020</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2020<!--[-->. <!--]--></span>SOHNE, open source</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Unity post-processing for simulating color-blind palettes</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unity</li><li class="tag">Accessibility</li><!--]--></ul></div></a></li><li><a href="/projects/free-breeze" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/projects/free-breeze.webp" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Free Breeze</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2020</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2020<!--[-->. <!--]--></span>SOHNE, project manager, team of four</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Cute, colorful multiplayer nature strategy shooter</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unity</li><li class="tag">Multiplayer</li><!--]--></ul></div></a></li><li><a href="/projects/robots-fight-at-night" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/projects/robots-fight-at-night.webp" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Robots Fight At Night</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2020</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2020<!--[-->. <!--]--></span>SOHNE, project manager</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">Cyberpunk isometric 3D team-based action shooter</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unity</li><li class="tag">3D</li><!--]--></ul></div></a></li><li><a href="/projects/the-ashes-of-jorge" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">T</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">The Ashes of Jorge</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2019</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2019<!--[-->. <!--]--></span>Senac, team of three</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">2D side-scrolling beat 'em up with retro arcade flair</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unity</li><li class="tag">C#</li>
1<!--]--></ul></div></a></li><li><a href="/projects/kwartz" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><img src="/projects/kwartz/cover.webp" alt="" loading="lazy" class="h-full w-full object-cover"></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Kwartz</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2019</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2019<!--[-->. <!--]--></span>SOHNE, project manager</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">2D dark-fantasy side-scrolling strategy tower-defense game</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Unity</li><li class="tag">C#</li><!--]--></ul></div></a></li><li><a href="/projects/vosgi" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">V</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Vosgi / Ubura</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block">2015–2016</span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><span class="lg:hidden">2015–2016<!--[-->. <!--]--></span>SOHNE</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">A text-based game engine with an integrated lexer</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">Text-based</li><li class="tag">Lexer</li><!--]--></ul></div></a></li><li><a href="/projects/cozer" class="group flex gap-4 lg:gap-6"><div class="media flex items-center justify-center h-18 w-32 shrink-0 rounded-md! lg:h-[149px] lg:w-66 lg:rounded-lg!" aria-hidden="true"><span class="text-[2em] font-medium text-muted-foreground">C</span></div><div class="flex min-w-0 flex-1 flex-col gap-1 lg:gap-2"><div class="flex items-center justify-between gap-4"><h2 class="text-base font-medium leading-[1.35] decoration-1 underline-offset-4 group-hover:underline lg:text-xl lg:leading-[1.3] lg:tracking-[-0.2px]">Cozer</h2><span class="hidden shrink-0 text-[15px] leading-[1.4] text-muted-foreground lg:block"></span></div><p class="text-sm leading-[1.45] text-muted-foreground lg:text-[15px] lg:leading-[1.4]"><!---->SOHNE</p><p class="text-sm leading-[1.5] lg:text-[15px] lg:leading-[1.55]">2D game engine with Lua scripting and ECS support</p><ul class="hidden flex-wrap gap-1.5 pt-1 lg:flex"><!--[--><li class="tag">ECS</li><li class="tag">Lua</li><!--]--></ul></div></a></li><!--]--></ul><p class="col pt-10 lg:pt-14"><a href="https://github.com/search?o=desc&amp;s=updated&amp;type=repositories&amp;q=user%3Azschzen+user%3ASOHNE" target="_blank" rel="noopener" class="link-arrow py-2.5 lg:py-0">All open-source projects <span class="i-ph-arrow-up-right h-4! w-4!" aria-hidden="true"></span></a></p></div></div><!--]--></article><!----><!--]--></main><footer id="contact" class="col flex flex-col gap-18 pb-3 pt-24 lg:gap-30 lg:pb-8 lg:pt-40 print:hidden"><div class="flex flex-col gap-4 lg:gap-5"><h2 class="h-section">Get in touch</h2><p class="page-sub">Email is the fastest way to reach me.</p><div class="flex flex-col gap-4 pt-2 lg:flex-row lg:items-center lg:gap-6"><div class="flex flex-col gap-4 lg:flex-row lg:items-center"><a href="mailto:[email protected]" class="btn-primary">Email me</a><span class="text-[15px] leading-[1.4] text-muted-foreground">[email protected]</span></div><ul class="flex flex-wrap items-center gap-2"><!--[--><li><a href="https://github.com/zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="GitHub profile" title="GitHub profile"><!--[--><span class="i-simple-icons-github h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://linkedin.com/in/leandroperes" target="_blank" rel="noopener" class="btn-icon" aria-label="LinkedIn profile" title="LinkedIn profile"><!--[--><span class="i-simple-icons-linkedin h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://www.youtube.com/@zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="YouTube channel" title="YouTube channel"><!--[--><span class="i-simple-icons-youtube h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://gamejolt.com/@SOHNE" target="_blank" rel="noopener" class="btn-icon" aria-label="Game Jolt profile" title="Game Jolt profile"><!--[--><span class="i-simple-icons-gamejolt h-4! w-4!" aria-hidden="true"></span><!--]--></a></li><li><a href="https://www.shadertoy.com/user/zschzen" target="_blank" rel="noopener" class="btn-icon" aria-label="Shadertoy profile" title="Shadertoy profile"><!--[--><span class="i-ph-shapes h-4! w-4!" aria-hidden="true"></span><!--]--></a></li>
1<!--]--></ul></div></div><div class="flex items-center justify-between gap-4 text-[13px] leading-[1.4] text-muted-foreground lg:text-sm"><p>© 2020–2026 Leandro Peres · <a class="link" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" rel="noopener">CC BY-NC-SA 4.0</a></p><a href="#top" class="link-arrow py-3 text-sm!">Back to top <span class="i-ph-arrow-up h-4! w-4!" aria-hidden="true"></span></a></div></footer><!----><!--]--></div></body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.