Programming

Here's some various programming projects of mine, all open source, all unfinished. As you can probably tell, I'm a big fan of Haxe.

I usually host my projects on GitFluff, my Gitea instance.

Title Description Language
Candid Editor Candid Editor is designed to be a simple-to-use, yet powerful-when-needed image editor. Editor is not designed for a specific task, such as digital painting, photo re-touching, or asset creation - rather, the goal of Editor is to provide a simple way to accomplish multiple types of workloads.
Editor is currently in a very early alpha state. Don't expect it to be able to do too much just yet.

Current key features include:
  • A custom UI framework with support for virtual windows, dubbed "lithium"
  • Simple brush tool
  • Dual-color system with RGB sliders for modification
  • Pan-and-zoomable canvas - Pan using the MMB or the "Paw" tool, zoom using the scroll wheel
Built using OpenFL.
See the linked GitFluff page for source + building instructions.
Haxe
Candid Palette A tool for creating and managing color palettes! Originally written for a CS exam back in 2018, I have finally released it to the public.
I plan on eventually adding on to Palette again once I replace the antiquated version of Lithium it uses.

Features:
  • Save and open your palettes using the EPL (Epocti Palette) format. This palette format can then be used with Candid Editor for easy access in the color picker! (well, later on down the road...)
  • Export to GPL for use with programs such as GIMP and Aseprite, and TXT for use with Paint.NET. Just middle-click or right-click the "Save..." button.
  • Create a palette from the most prominent colors in an image file.
  • Add colors to a palette by picking them from an image file.
  • Support for ARGB for those in need of transparency
  • Get your hexcodes for development/web design/whatever purposes!
Built using OpenFL.
See the linked GitFluff page for source + building instructions, or here for pre-built releases.
Also, check here for sample palettes.
Haxe
VixenKit A multi-use library for games made using the Stencyl game engine, currently being developed alongside ExaStar. VixenKit contains modding and localization support, debug tools, a unified wrapper for Stencyl's Image API, and more. It's designed for games that are written primarily using Haxe (instead of Stencyl's visual programming language).

I have yet to release VixenKit to the public, as it's currently undergoing massive rewrites and still needs some decoupling from ExaStar's codebase. Did I mention it currently doesn't exist as a library separate from the game?
Haxe
OrigamiEngine
(shelved)
An OpenFL-based game engine I was planning to develop, before realizing I didn't have the motivation to start a project as large as that.

Origami is intended to be a "hybrid" of a framework and an engine. While the engine leaves game developers to decide how their content and game components should be structured, some crucial components (such as the "scene" model, rendering, sound mixing, and more) are handled by Origami, instead of leaving the burden on the developers to write their own systems. In a way, it's like using a normal game engine, only there's no "project editor" of sorts to deal with; developers are free to use whatever workflow and tools they'd like.

Though development was put on hiatus after only a week or so of development, some components (such as an implementation of VixenKit's ESprite, a debug console, engine configuration, and more) were pretty feature-complete by the end of it.

I spent quite a bit of time planning how the engine should work, and I'm still really interested in seeing it come to fruition. So, it's only shelved for the time being. Origami's debug console, however, still lives as a feature of VixenKit, since both Stencyl and Origami share the same base (OpenFL).
Haxe
sweepin' A text-based minesweeper clone I wrote in a day when I was bored. It's a bit lacking in features, notably not having a safeguard against generating an unsolvable field, but it's at least playable (...at least I think. I vaguely recall hitting an infinite loop with a recursive function in the game one time, but I just played though a full game without hitting a loop, so I really don't know anymore).

At some point I want to rework this by using ncurses instead of coordinate inputs... somehow.
Java
echowo Probably the most cursed-yet-functional program I've ever made. echowo is a drop-in replacement for the Unix "echo" command, with a (horrifying) twist: Text passed to it gets translated to uwuspeak.
I made this while on painkillers + while I should have been sleeping, so it's not super-well-structured and there's not much in terms of text replacement. It's also a slower (by a negligible amount) than something written in C since I used Haxe for this, but it works. I'll add onto this in the future, and somewhere down the line, maybe rewrite in C. I also want to eventually make a similar program for the "cat" command.
Haxe
Peter Alert It's a long story.
Prebuilt EXE can be found here for those not wanting to install a copy of VB6 to build this.
Visual Basic
HXSFUnserializeTool Small Haxe program to unserialize data stored in HXSF (Haxe Serialization Format), intended to be part of the VixenKit and Origami SDKs (eventually).

It does not yet support unserializing Maps of any type pairing, instead showing only the variable's name. It also does not support reserialization (though why would it?), but I'm planning on writing a (re)serialization tool that works using an intermediary format that will be implemented into the unserializer (most likely JSON).
Haxe
Large Hadron Converter This is a script that I used A TON when I used to manually manage my music library with Plex on my Raspberry Pi.
Because my data plan and home upload speed were a bit limited at the time, and I didn't want to store all of my music on my phone, I had to store my music on a NAS - AND - make sure they were small, because the upload speed of my home network would mean things would take forever to load if I were away from home...

The solution? A script to crunch each album of my existing FLAC/MP3 library down to reasonably-good-sounding-yet-tiny AAC files, then send em over to my Raspberry Pi via ssh. Automatically.

See the linked GitFluff page for download + requirements.
Bash script
squeakfox Simple & cute webapp that was used as a landing page during GitFluff's construction. See it in action here.

Built using OpenFL.
Haxe
peachmaker A script (packaged as executable) that generates a meme based on the "peach time" format, given an image and string as input.

Usage: peachmaker -i <path to image> -t <your text>

Requires imagemagick and the Courier font, but the latter can be swapped out by opening the executable in a text editor and editing the font name after "-family".
Bash script

A lot of my other projects are either incomplete or too tailored towards me personally to release...