118 lines
5.9 KiB
HTML
118 lines
5.9 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<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=Mulish:ital,wght@0,200..1000;1,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Oswald:wght@200..700&family=Quicksand:wght@300..700&display=swap" rel="stylesheet">
|
||
<link rel="stylesheet" href="../css/projectStyle.css">
|
||
<link rel="stylesheet" href="./css/project1Style.css">
|
||
<title>Graph Theory: Flat Buffer – Lew's Portfolio</title>
|
||
</head>
|
||
<body>
|
||
|
||
<header>
|
||
<div class="nav-bar">
|
||
<a href="../index.html"><img class="nav-logo" src="../images/icons/logo.svg" alt="lew's logo" width="180" height="auto"></a>
|
||
<nav>
|
||
<ul class="nav-links">
|
||
<li><a href="../index.html">Home</a></li>
|
||
<li><a href="../projects.html">Projects</a></li>
|
||
<li><a href="../index.html#contact">Contact</a></li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="project-detail">
|
||
|
||
<div class="project-hero">
|
||
<div class="hero-image hero-image--placeholder">
|
||
<div class="placeholder-graphic">
|
||
<svg viewBox="0 0 200 120" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
||
<circle cx="30" cy="60" r="12" fill="none" stroke="#009DF0" stroke-width="2"/>
|
||
<circle cx="100" cy="20" r="12" fill="none" stroke="#009DF0" stroke-width="2"/>
|
||
<circle cx="170" cy="60" r="12" fill="none" stroke="#009DF0" stroke-width="2"/>
|
||
<circle cx="100" cy="100" r="12" fill="none" stroke="#F09B00" stroke-width="2"/>
|
||
<line x1="42" y1="60" x2="88" y2="28" stroke="#009DF0" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||
<line x1="112" y1="28" x2="158" y2="52" stroke="#009DF0" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||
<line x1="42" y1="66" x2="88" y2="92" stroke="#F09B00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||
<line x1="112" y1="92" x2="158" y2="68" stroke="#F09B00" stroke-width="1.5" stroke-dasharray="4 3"/>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
<div class="hero-overlay">
|
||
<span class="project-tag">Data Structures · Memory Management</span>
|
||
<h1>Graph Theory: Flat Buffer</h1>
|
||
<p class="hero-sub">A memory-consistent graph implementation with zero object duplication.</p>
|
||
<a class="btn-primary" href="https://git.lewispricedev.com/Rapturate/" target="_blank">View Repository ↗</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="detail-grid">
|
||
|
||
<section class="detail-section">
|
||
<h2>Overview</h2>
|
||
<p>
|
||
This project explores graph theory through the lens of memory efficiency.
|
||
The flat buffer architecture ensures a consistent, predictable memory
|
||
footprint — no object duplication, only controlled growth, reduction,
|
||
or deletion of nodes and edges.
|
||
</p>
|
||
</section>
|
||
|
||
<section class="detail-section">
|
||
<h2>Design Goals</h2>
|
||
<ul class="feature-list">
|
||
<li>Flat contiguous buffer — no pointer-chasing heap fragmentation</li>
|
||
<li>Strict no-duplication contract for all graph objects</li>
|
||
<li>Deterministic add / grow / shrink / delete lifecycle</li>
|
||
<li>Suitable for use in performance-sensitive or embedded contexts</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<section class="detail-section">
|
||
<h2>Tech Stack</h2>
|
||
<div class="tech-pills">
|
||
<span>C / C++</span>
|
||
<span>Graph Theory</span>
|
||
<span>Memory Layouts</span>
|
||
<span>Data Structures</span>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="detail-section">
|
||
<h2>Challenges & Learnings</h2>
|
||
<p>
|
||
Designing a flat buffer that still supports dynamic graph mutations required
|
||
rethinking typical pointer-based graph representations. The key insight was
|
||
using index-based references within the buffer rather than raw pointers,
|
||
enabling safe resizing without invalidating existing relationships.
|
||
</p>
|
||
</section>
|
||
|
||
</div>
|
||
|
||
<div class="project-nav">
|
||
<a href="./project3.html" class="btn-secondary">← Previous Project</a>
|
||
<a href="./project5.html" class="btn-secondary">Next Project →</a>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<footer>
|
||
<p>© 2024 LewisPriceDev, All rights reserved.</p>
|
||
<div class="social-links">
|
||
<a href="https://www.linkedin.com/in/lewis-price-a79185195/" target="_blank" aria-label="LinkedIn">
|
||
<img src="../images/icons/linkedin-icon.svg" alt="">
|
||
</a>
|
||
<a class="mail-img" href="mailto:lewis.e.price@outlook.com">
|
||
<img src="../images/icons/mail_icon.svg" alt="lewis.price@outlook.com">
|
||
</a>
|
||
</div>
|
||
</footer>
|
||
|
||
</body>
|
||
</html>
|