summaryrefslogtreecommitdiff
path: root/projects/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'projects/index.html')
-rw-r--r--projects/index.html205
1 files changed, 205 insertions, 0 deletions
diff --git a/projects/index.html b/projects/index.html
new file mode 100644
index 0000000..b7daeba
--- /dev/null
+++ b/projects/index.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html>
+<html><head>
+ <meta charset="utf-8">
+ <title>Projects | Home</title>
+ <meta name="description" content="">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="mobile-web-app-capable" content="yes">
+ <meta name="color-scheme" content="dark light">
+ <link rel="stylesheet" href="/style.css">
+</head>
+<body><nav>
+ <div class="internal">
+
+ <a href="/" title="Home">Home</a>
+ <a href="/blog/" title="Blog">Blog</a>
+ <a href="/projects/" title="Projects" class="active">Projects</a>
+ <a href="/about/" title="About">About</a>
+ </div>
+ <div class="search">
+ <div id="search"></div>
+ </div>
+ <div class="external">
+ <a href="https://git.jaseg.de/" title="cgit">cgit</a>
+ <a href="https://github.com/jaseg" title="Github">Github</a>
+ <a href="https://gitlab.com/neinseg" title="Gitlab">Gitlab</a>
+ <a href="https://chaos.social/@jaseg" title="Mastodon">Mastodon</a>
+ </span>
+</nav>
+
+ <header>
+ <h1>Projects</h1>
+<ul class="breadcrumbs">
+ <li><a href="/">jaseg.de</a></li><li><a href="/projects/">Projects</a></li>
+</ul>
+
+ </header>
+ <main class="cards">
+ <div class="intro">
+ <div class="document">
+
+
+<p>I maintain a number of open-source projects. Most of these I started out of some personal need or interest.
+I strive to keep all of them up to date and maintained, so if you notice an issue with one of them, please
+open an issue on the project's issue tracker.</p>
+</div>
+ </div>
+ <div class="card"><h3><a href="/projects/kimesh/">KiMesh</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>KiMesh is a KiCad plugin that automatically creates security meshes with two or traces covering an arbitrarily-shaped outline on the board.</p>
+</div>
+ <a href="http://jaseg.de/projects/kimesh/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/kimesh.git">Sources</a>
+ <a href="https://github.com/jaseg/kimesh/issues">Issues</a>
+ <a href="https://jaseg.de/projects/kimesh">Docs</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/8seg/">8seg</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space's size and shape through bending and folding.</p>
+</div>
+ <a href="http://jaseg.de/projects/8seg/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/8seg.git">Sources and hardware design files</a>
+ <a href="https://www.printables.com/model/695260-parametric-flexible-aluminium-profile-case">Enclosure 3D models</a>
+ <a href="http://jaseg.de/blog/8seg">Technical overview blog post</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/gerbolyze/">Gerbolyze</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>Gerbolyze is a tool that allows the modification of Gerber PCB artwork with a vector graphics editor like Inkscape. Gerbolyze directly converts between SVG and Gerber, and accurately reproduces details that other tools can not.</p>
+</div>
+ <a href="http://jaseg.de/projects/gerbolyze/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/gerbolyze.git">Sources</a>
+ <a href="https://github.com/jaseg/gerbolyze/issues">Issues</a>
+ <a href="https://gerbolyze.gitlab.io/gerbolyze">Docs</a>
+ <a href="https://pypi.org/project/gerbolyze">PyPI</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/gerbonara/">Gerbonara</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>Gerbonara is a user-friendly, powerful tool for reading, writing, modification and rendering of Gerber PCB artwork from the command line or from Python code. Gerbonara supports the Gerber dialects of all industry-standard EDA tools.</p>
+</div>
+ <a href="http://jaseg.de/projects/gerbonara/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/gerbonara.git">Sources</a>
+ <a href="https://gitlab.com/gerbolyze/gerbonara/issues">Issues</a>
+ <a href="https://gerbolyze.gitlab.io/gerbonara">Docs</a>
+ <a href="https://pypi.org/project/gerbonara">PyPI</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/lolcat-c/">lolcat-c</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>lolcat-c is a small, high-performance re-implementation of the <a class="reference external" href="https://github.com/busyloop/lolcat">lolcat</a> rainbow cat utility. lolcat-c is meant as a lolcat that you can actually use in production. It is fast, not slowing down whatever you pipe through it, and it robustly handles real-world terminal output including escape sequences.</p>
+</div>
+ <a href="http://jaseg.de/projects/lolcat-c/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/lolcat.git">Sources</a>
+ <a href="https://github.com/jaseg/lolcat">Github</a>
+ <a href="https://github.com/jaseg/lolcat/issues">Issues</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/python-mpv/">python-mpv</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>python-mpv is a small, ctypes-based Python library wrapping the libmpv media player library. Despite its small size and simple API, python-mpv allows advanced control over libmpv and beyond simple remote control of mpv can be used to embed mpv in OpenGL, Qt, and GTK-based Python applications.</p>
+</div>
+ <a href="http://jaseg.de/projects/python-mpv/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/python-mpv.git">Sources</a>
+ <a href="https://github.com/jaseg/python-mpv/issues">Issues</a>
+ <a href="https://neinseg.gitlab.io/python-mpv">Docs</a>
+ <a href="https://pypi.org/project/mpv">PyPI</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/svg-flatten/">svg-flatten</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>svg-flatten is a command-line utility that performs vector occlusion and clipping on SVG files, producing a flattened SVG file without overlapping elements, without changing what the file looks like. svg-flatten is used as a part of gerbolyze.</p>
+</div>
+ <a href="http://jaseg.de/projects/svg-flatten/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/gerbolyze.git/tree/svg-flatten?h=main">Sources</a>
+ <a href="https://github.com/jaseg/gerbolyze/issues">Issues</a>
+ <a href="https://gerbolyze.gitlab.io/svg-flatten">Docs</a>
+ </div>
+</div>
+
+ <div class="card"><h3><a href="/projects/wsdiff/">wsdiff</a></h3>
+
+ <div class="summary">
+ <div class="document">
+
+
+<p>wsdiff is a command-line utility that produces self-contained, syntax-highlighted, HTML-formatted diffs that support both unified and side-by-side diffs from a single source file using nothing but CSS magic.</p>
+</div>
+ <a href="http://jaseg.de/projects/wsdiff/">Read more</a>
+ </div>
+ <div class="links">
+ <a href="https://git.jaseg.de/wsdiff.git">Sources</a>
+ <a href="https://github.com/jaseg/wsdiff/issues">Issues</a>
+ <a href="https://pypi.org/project/wsdiff">PyPI</a>
+ </div>
+</div>
+
+ </main><footer>
+ Copyright © 2023 Jan Sebastian Götte
+ / <a href="/about/">About</a>
+ / <a href="/imprint/">Imprint</a>
+</footer>
+<script src="/pagefind/pagefind-ui.js"></script>
+ <script>
+ if(navigator.getEnvironmentIntegrity!==undefined)document.querySelector('body').innerHTML=`<h1>Your browser
+ contains Google DRM</h1>"Web Environment Integrity" is a Google euphemism for a DRM that is designed to
+ prevent ad-blocking, and which Google has forced into their browsers against widespread public opposition.
+ In support of an open web, this website does not function with this DRM. Please install a browser such
+ as <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> that respects your freedom and supports
+ ad blockers.`;
+
+ window.addEventListener('DOMContentLoaded', (event) => {
+ new PagefindUI({element: "#search", showSubResults: true});
+ });
+ </script>
+ </body>
+</html>