Simplify software pages

As much as I like this organization system - I think this is one of the
oldest on the site - it was one glaring flaw. I never keep these
descriptions up-to-date and never will! So if the software page has
source code available (and no other text) it will now redirect straight
to the source code.
This commit is contained in:
Joshua Goins 2025-04-12 18:38:56 -04:00
parent fa4e28f1fb
commit 7ff52707cd
56 changed files with 162 additions and 357 deletions

View file

@ -9,5 +9,3 @@ source: "https://code.ryne.moe/redstrate/arm9switcher"
license: MIT
summary: "A payload switcher for arm9loaderhax"
---
A payload switcher for arm9loaderhax with it's only purpose is to switch two files.

17
content/software/chip8.md Normal file
View file

@ -0,0 +1,17 @@
---
title: "chip8"
date: 2020-01-25
draft: false
source: "https://code.ryne.moe/redstrate/chip8"
license: MIT
projtags:
- CPlusPlus
- Emulation
resources:
- src: img/output.png
name: Screenshot
layout: "project"
aliases:
- /projects/chip8
summary: "Basic Chip-8 emulator."
---

View file

@ -1,25 +0,0 @@
---
title: "chip8"
date: 2020-01-25
draft: false
source: "https://code.ryne.moe/redstrate/chip8"
license: MIT
projtags:
- CPlusPlus
- Emulation
resources:
- src: img/output.png
name: Screenshot
layout: "project"
aliases:
- /projects/chip8
summary: "Basic Chip-8 emulator."
---
This is my first ever (working) emulator, of the simple CHIP-8 system. I'm pretty proud of this, because apart from the sprite collision logic I was able to implement most of the opcodes just looking at a basic overview of the instruction set.
![Screenshot of breakout](output.webp)
Technically, this implements the SCHIP type of instructions but can still play many of the ROMs you can find online. I also added a cute debugger window and a memory viewer. The emulator also comes with a built-in deflicker for the display.
For funsies, I included a basic parser that can spit out valid CHIP-8 instructions for a C-style language!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View file

@ -10,5 +10,3 @@ source: "https://invent.kde.org/redstrate/clipstudio-kde"
license: LGPLv3
summary: "These are plugins for the KDE Plasma Desktop, allowing you to view Clip Studio files."
---
These are plugins for the KDE Plasma Desktop, allowing you to view Clip Studio files.

View file

@ -9,5 +9,3 @@ source: "https://code.ryne.moe/redstrate/ctrorganizer"
license: MIT
summary: "A 3DS File Manager"
---
A 3DS File Manager.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

View file

@ -1,23 +0,0 @@
---
title: "Dr. Frizzly's Mega Minigame Collection"
date: 2023-02-20
draft: false
projtags:
- Game
- Game Jam
- Godot
layout: "project"
summary: "Game jam entry for KO Slam Jam."
---
Dr. Frizzly has invited himself (into your house) and has a new game - Dr. Frizzy's Mega Minigame Collection! Complete as many minigames as you can before the 120 second time limit runs out.
![Game banner](5kU+QN.png)
![Screenshot of the "avoid" minigame](dNNq4B.png)
![Screenshot of the intermission TV](OqQNfu.png)
![Screenshot of the clock adjusting minigame](xuY0.png)
This is my game jam entry for the KO Slam-Jam, which happened over the course of
three days. It's not great, and eventually I'll update it and release the source code.
You can view the full game page on [itch.io](https://redstrate.itch.io/dr-frizzlys-mega-minigame-collection)!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

View file

@ -11,7 +11,3 @@ source: "https://github.com/redstrate/fediseum"
license: MIT
summary: "Virtual art museum"
---
The FEDISEUM is a virtual museum that showcases the artwork made by humans, supporting any Mastodon-compatible server. At the moment, it shows any static media tagged with #art and isn't marked sensitive. The artwork is sorted based on time posted since you walked into the museum.
See more information and download FEDISEUM on [it's website](https://fediseum.redstrate.com/).

View file

@ -0,0 +1,16 @@
---
title: "Gallery"
date: 2020-01-25
draft: false
source: "https://code.ryne.moe/redstrate/gallery"
license: MIT
projtags:
- Swift
- UIKit
- iOS
- macOS
layout: "project"
aliases:
- /projects/gallery
summary: "Local booru for macOS and iOS devices."
---

View file

@ -1,22 +0,0 @@
---
title: "Gallery"
date: 2020-01-25
draft: false
source: "https://code.ryne.moe/redstrate/gallery"
license: MIT
projtags:
- Swift
- UIKit
- iOS
- macOS
layout: "project"
aliases:
- /projects/gallery
summary: "Local booru for macOS and iOS devices."
---
I had always wanted to build a local booru application, especially for Apple devices. This was also an experiment in Mac Catalyst, which released the same year.
![Screenshot of the main user interface](showcase.webp)
This utilizes UIKit for it's GUI, and uses Apple's own Core Data framework to actually build relationships between tags, images, etc. To run on macOS, it uses Mac Catalyst. The actual functionality of this is incredibly basic, but it does work!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

16
content/software/graph.md Normal file
View file

@ -0,0 +1,16 @@
---
title: "Graph"
date: 2018-08-11
draft: false
source: "https://code.ryne.moe/redstrate/graph"
license: MIT
projtags:
- 3D
- CPlusPlus
- Vulkan
- Qt
layout: "project"
aliases:
- /projects/graph
summary: "Game engine utilizing Vulkan and Qt."
---

View file

@ -1,29 +0,0 @@
---
title: "Graph"
date: 2018-08-11
draft: false
source: "https://code.ryne.moe/redstrate/graph"
license: MIT
projtags:
- 3D
- CPlusPlus
- Vulkan
- Qt
layout: "project"
aliases:
- /projects/graph
summary: "Game engine utilizing Vulkan and Qt."
---
Following up [XT]({{<ref XT>}}), this was my first adventure into Vulkan - which was a relatively new API at the time. This is an ancient project, but this is where the majority of my Vulkan knowledge was born from. Unlike some of my older projects I've recovered recently, this one actually has **all** of my commit history intact!
![Screenshot of the example application](screenshot.webp)
This features things such as:
* Working depth of field pass utilizing near and far fields.
* This was started back when the engine was originally conceived, but I actually finished this feature recently :-)
* Custom Qt interfaces for all the tooling, compared to the dear imgui interfaces of Prism and XT.
* Antialiasing utilizing SMAA.
* Audio playback using OpenAL Soft.
This was eventually replaced by [Prism]({{< ref prism >}}) in 2020 and onward

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View file

@ -11,5 +11,3 @@ source: "https://code.ryne.moe/redstrate/graphite"
license: MIT
summary: "Game engine from 2017"
---
A C++ game engine that uses Vulkan to render graphics. It uses Angelscript for scripting.

View file

@ -10,17 +10,3 @@ license: GPLv3
source: "https://code.ryne.moe/redstrate/hydrus-sync-client/"
summary: "Sync hydrus databases using rsync."
---
Ever feel like you need a way to sync Hydrus databases across multiple machines? With `hydrus-sync-client`, you can
easily synchronize your Hydrus database with a rsync server. This was originally a Bash script that I decided to rewrite in Rust, so it's pretty ugly.
# Process
1. The program first checks the last hostname that synchronized, this is used later to decide whether to sync first.
2. Then the lockfile is checked, if it is locked - the program exits.
3. If the hostnames don't match, we sync the files before launching.
4. Hydrus is launched and you can continue like normal.
5. Once Hydrus is closed, the file synchronization now happens in reverse.
6. Before the program exits, the lockfile is reset and the last hostname is updated.
As long as you ensure you're always using `hydrus-sync-client` to run Hydrus, the sync process is mostly foolproof.

View file

@ -9,5 +9,3 @@ license: GPLv3
source: "https://code.ryne.moe/redstrate/ireko"
summary: "Library for reading save files from Dolls Nest"
---
Library for reading save files from [Dolls Nest](https://store.steampowered.com/app/1839430/Dolls_Nest/). Only the demo is supported because that's what is available at the time of writing.

View file

@ -11,5 +11,3 @@ source: "https://github.com/redstrate/kawari"
license: GPLv3
summary: "Substitute for some official FFXIV servers"
---
A substitute for a few official servers such as “ffxiv.com” and “square-enix.com”. Its still early in development, but can already emulate the basic login flow.

View file

@ -11,5 +11,3 @@ source: "https://invent.kde.org/redstrate/kensa"
license: GPLv2
summary: "View detailed information about a process."
---
View detailed information about a process, similiar to Process Explorer on Windows. You can read more information in [it's README](https://invent.kde.org/redstrate/kensa/-/blob/master/README.md).

View file

@ -0,0 +1,15 @@
---
title: "Konvex"
date: 2023-02-02
draft: false
layout: "project"
projtags:
- KDE
- CPlusPlus
- Kirigami
- Qt
source: "https://invent.kde.org/graphics/konvex"
license: GPLv3
summary: "3D Model Viewer"
---

View file

@ -1,19 +0,0 @@
---
title: "Konvex"
date: 2023-02-02
draft: false
layout: "project"
projtags:
- KDE
- CPlusPlus
- Kirigami
- Qt
source: "https://invent.kde.org/redstrate/konvex"
license: GPLv3
summary: "3D Model Viewer"
---
A simple 3D model viewer for KDE. This utilizes the Qt Quick 3D library, which does all of the heavy lifting for
rendering, input, etc.
![Screenshot](screenshot.webp)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View file

@ -11,5 +11,3 @@ source: "https://invent.kde.org/redstrate/ktabletconfig"
license: GPLv3
summary: "Tablet configuration CLI for KDE Plasma"
---
A CLI utility to change tablet configuration on the KDE Plasma Desktop. This is meant to be used in situations not supported by the Drawing Tablet KCM, such as a automation or touching experimental settings not yet exposed in the GUI. You can read more about it in [it's README](https://invent.kde.org/redstrate/ktabletconfig/-/blob/master/README.md).

View file

@ -13,24 +13,3 @@ license: GPLv3
source: "https://code.ryne.moe/redstrate/libxiv"
summary: "Unmaintained FFXIV modding framework."
---
I originally wrote this in C++, but eventually rewrote it in Rust and that turned into
[Physis]({{< ref "physis" >}}).
## Goals
* Easily integratable into other FFXIV launchers so they can have update/install support without having to write it themselves.
* Can export Penumbra/Lumina format mods, I have no interest in exporting in TexTools's format.
* Can export/edit some formats such as models, and metadata/exl files.
* Can be used on Windows/Linux/macOS and doesn't pull in a huge runtime (C#) or run in Wine.
## Features
* Easily extract game files and view excel sheets by name. See gamedata.h for usage.
* Install patches (right now it's limited to boot patches). See patch.h for usage.
* Install FFXIV by emulating the official installer, bypassing Wine and InstallShield. You can see how to use this in installextract.h.
* Parse some game data:
* EXD
* EXH
* EXL
* FIIN
* INDEX/INDEX2
* MDL

View file

@ -0,0 +1,12 @@
---
title: "NeoStream"
date: 2017-10-01
draft: false
layout: "project"
projtags:
- Reverse Engineering
- Android
source: "https://code.ryne.moe/redstrate/neostream"
license: GPLv3
summary: "Open-source Android Twitch client"
---

View file

@ -1,22 +0,0 @@
---
title: "NeoStream"
date: 2017-10-01
draft: false
layout: "project"
projtags:
- Reverse Engineering
- Android
source: "https://code.ryne.moe/redstrate/neostream"
license: GPLv3
summary: "Open-source Android Twitch client"
---
## Features
* Watching livestreams with chat
* Ability to use external player like VLC with quality options
* Watch videos
* Search livestreams and channels
* Follow channels
* Notifications when followed channels go live
![Screenshot](screenshot2.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

View file

@ -13,13 +13,3 @@ source: "https://github.com/redstrate/Physis"
license: GPLv3
summary: "Modding and data framework for FFXIV."
---
This is the successor to [libxiv]({{< ref "libxiv" >}}), which I originally wrote in C++. The language is not the only
difference however, as I learned a lot since originally writing libxiv which I have fixed in Physis. Compared to other
modding frameworks, this one is aiming to be all "batteries included" instead of exclusively focusing on texture modding,
data scraping, etc.
Physis features a C api which is accessed through the [libphysis](https://github.com/redstrate/libphysis) library. This
library should be usable through any language that can access the C FFI.
You can read more on it's [dedicated webpage on xiv.zone](https://xiv.zone/physis/). It's also published on [crates.io](https://crates.io/crates/physis)!

17
content/software/prism.md Normal file
View file

@ -0,0 +1,17 @@
---
title: "Prism"
date: 2020-08-11
draft: false
source: "https://code.ryne.moe/redstrate/prism"
license: MIT
projtags:
- 3D
- CPlusPlus
- Vulkan
- Metal
featured: yes
layout: "project"
aliases:
- /projects/prism
summary: "My latest cross-platform game engine."
---

View file

@ -1,28 +0,0 @@
---
title: "Prism"
date: 2020-08-11
draft: false
source: "https://code.ryne.moe/redstrate/prism"
license: MIT
projtags:
- 3D
- CPlusPlus
- Vulkan
- Metal
featured: yes
layout: "project"
aliases:
- /projects/prism
summary: "My latest cross-platform game engine."
---
![PCSS in action](pcss.webp)
This engine is the summation of all of my graphics developer knowledge. The list of features is not limited to:
* Physically based rendering and image based lighting based on scene probes or from a dynamic sky.
* Skeleton and also a basic cutscene system.
* Custom editors to edit the most common assets, such as materials and maps.
* Beautiful shadows using a runtime configurable option of PCSS, PCF or just plainly sampled.
* Scalability options including turning off all image based lighting or toning down point light shadowing which can run on lower end devices such as a phone.
* Advanced render interface layer that can run on top of Vulkan, Metal and eventually DirectX.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View file

@ -10,5 +10,3 @@ source: "https://invent.kde.org/redstrate/procreate-kde"
license: LGPLv3
summary: "These are plugins for the KDE Plasma Desktop, allowing you to view Procreate files."
---
These are plugins for the KDE Plasma Desktop, allowing you to view Procreate files.

View file

@ -0,0 +1,14 @@
---
title: "Raytracer"
date: 2020-02-17
draft: false
source: "https://code.ryne.moe/redstrate/raytracer"
license: MIT
projtags:
- CPlusPlus
- 3D
layout: "project"
aliases:
- /projects/raytracer
summary: "CPU raytracer."
---

View file

@ -1,24 +0,0 @@
---
title: "Raytracer"
date: 2020-02-17
draft: false
source: "https://code.ryne.moe/redstrate/raytracer"
license: MIT
projtags:
- CPlusPlus
- 3D
layout: "project"
aliases:
- /projects/raytracer
summary: "CPU raytracer."
---
This is a CPU-based raytracer, and also my first! This features things such as:
![Screenshot of a raytraced Suzanne](output.webp)
* Naive multi-threading support based on tiles and utilizing C++ futures.
* Ability to load arbitrary OBJs and render them.
* Indirect light sampling.
* Shadows!!
* dear imgui interface for easily viewing the results.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

12
content/software/redai.md Normal file
View file

@ -0,0 +1,12 @@
---
title: "Redai"
date: 2023-03-27
draft: false
layout: "project"
projtags:
- CPlusPlus
- Qt
source: "https://code.ryne.moe/redstrate/redai"
license: GPLv3
summary: "Website gallery manager"
---

View file

@ -1,16 +0,0 @@
---
title: "Redai"
date: 2023-03-27
draft: false
layout: "project"
projtags:
- CPlusPlus
- Qt
source: "https://code.ryne.moe/redstrate/redai"
license: GPLv3
summary: "Website gallery manager"
---
The art gallery manager application for this website! It can edit piece information such as title, date, description and more. You also have a nice preview of the art when editing, which helps writing alternative text.
![Main Window](screenshot.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

View file

@ -10,7 +10,3 @@ license: GPLv3
source: https://code.ryne.moe/redstrate/sen
summary: "Kernel for learning purposes."
---
This is my custom kernel for learning purposes. I'm not a osdev at all, so please excuse the mess.
Right now it compiles for x86_64, 32-bit is not supported. Most of this is just skeleton code from osdev.org, but I cleaned some stuff. I use Stivale for higher half kernel loading and not having to gaff about a bootloader for now. Limine is included as my bootloader of choice.

View file

@ -11,7 +11,3 @@ source: "https://code.ryne.moe/redstrate/shaderboy"
license: MIT
summary: "Allows you to view shadertoy shaders offline"
---
allows you to view shadertoy shaders offline (requires GL3.3+)
doesn't support sound but it can fetch some external resources and multiple buffers

View file

@ -0,0 +1,15 @@
---
title: "Trinity"
date: 2018-03-18
draft: false
source: "https://code.ryne.moe/redstrate/trinity"
license: GPLv3
projtags:
- CPlusPlus
- Qt
- Matrix
layout: "project"
aliases:
- /projects/trinity
summary: "Discord-like Matrix client using QML and Qt."
---

View file

@ -1,23 +0,0 @@
---
title: "Trinity"
date: 2018-03-18
draft: false
source: "https://code.ryne.moe/redstrate/trinity"
license: GPLv3
projtags:
- CPlusPlus
- Qt
- Matrix
layout: "project"
aliases:
- /projects/trinity
summary: "Discord-like Matrix client using QML and Qt."
---
I was super interested in Matrix back in 2018, and thus
was determined to create a client similar to Discord that
could help users who were looking for a similar experience. Trinity was born, and I learned a ton about the Matrix specification and Qt/QML development from this project.
![Screenshot of the main user interface](screenshot.webp)
Unfortunately I could only recover an older version of the source code, but it's still completely functional today. However, The commit history is wiped clean. It used to feature some stuff that didn't exist in some of the most popular Matrix clients back then, such as audio/video calling (using WebRTC) and custom emotes.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View file

@ -0,0 +1,15 @@
---
title: "Water Symbol"
date: 2022-05-01
draft: false
source: "https://code.ryne.moe/redstrate/water-symbol"
license: GPLv3
license-url: https://code.ryne.moe/redstrate/water-symbol/src/branch/main/LICENSE
projtags:
- Java
- Game
layout: "project"
aliases:
- /projects/watersymbol
summary: "Fire Emblem clone for a course final project."
---

View file

@ -1,26 +0,0 @@
---
title: "Water Symbol"
date: 2022-05-01
draft: false
source: "https://code.ryne.moe/redstrate/water-symbol"
license: GPLv3
license-url: https://code.ryne.moe/redstrate/water-symbol/src/branch/main/LICENSE
projtags:
- Java
- Game
layout: "project"
aliases:
- /projects/watersymbol
summary: "Fire Emblem clone for a course final project."
---
A really bare-bones Fire Emblem clone using libGDX and Java.
![Screenshot of the main (and only) game area](screenshot.webp)
# Features
* Proper A* navigation for enemies, and is also player unit pathing.
* All the assets are wholly created by me, except for the default Arial font included in libGDX.
* Working gameplay loop, allowing you to kill or be killed by the enemy units on a test map.
* Maps can be created in Tiled, allowing for easy authoring.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View file

@ -1,27 +1,13 @@
{{ define "main" }}
<h2>{{ .Title }}</h2>
{{ if $.Param "source" }}
<table>
{{ with $.Param "source" }}
<tr>
<td>Source Code</td>
<td><a href='{{ . }}'>{{ . }}</a></td>
</tr>
{{ end }}
{{ if (and ($.Param "source") (not .Content)) }}
{{- template "alias.html" (dict "Permalink" .Params.source) -}}
{{ else }}
<p>{{ .Summary }}</p>
{{ with $.Param "license" }}
<tr>
<td>License</td>
<td>{{ . }}</td>
</tr>
{{ end }}
</table>
<hr>
{{ .Content }}
{{ end }}
<p>{{ .Summary }}</p>
<hr>
{{ .Content }}
{{ end }}

View file

@ -104,15 +104,17 @@
<p class="project-desc">{{ .Summary }}</p>
<ul class="nice-list">
<li>
<a href="{{ .RelPermalink }}">About</a>
</li>
{{ with .Param "source" }}
<li>
<a href="{{ . }}">Source Code</a>
</li>
{{ end }}
{{ if .Content }}
<li>
<a href="{{ .RelPermalink }}">About</a>
</li>
{{ end }}
</ul>
</div>
{{ end }}