What I've been doing

Created 8/9/2025, 7:29:38 PM; Last modified 3/24/2026, 12:38:29 AM

First time writing a blog (or gemlog, I suppose, since we're on the gemini version of this site), that's something new for me.

I've been doing a decent amount of random things recently, as I usually do. I'm not the kind of person to focus on one project at once (at least, not for more than a week); I usually work on many things at the same time and switch between them when I get bored of one.

1. Enki

Last week I've been working on something I call Enki (named for the Sumerian God[a]), which is a world editing and scripting tool for Minecraft. Before, I used World Edit (which, don't get me wrong is a very useful and powerful tool) but it has a lot of problems. I'll enumerate them further when I release the first alpha version of Enki, but to be short, my problems with World Edit are that it is:

Enki solves most of these issues by simply being a /programming language/ rather than just a list of predetermined commands. You can:

While developing Enki, I realized its potential is much larger than /just/ a world editing tool; it could replace vanilla commands entirely, offering a more powerful and much more usable alternative (don't even get me /started/ on how terrible vanilla commands are). That's going to be for later though, and I'm going to focus on getting up to feature parity with world edit for the time being.

2. XSUI

XSTD[b] is a bundle of libraries for C99 that I'm currently working on, mostly aimed at providing basic utilities and such. As part of it, I'm creating a GUI library that I call `XSUI`. It will be a simple Immediate mode-style GUI[c] that will support multiple different graphics backends (currently focusing on SDL2*). My goal is for it to be something simple you can use to throw together a GUI app, while still being usable for larger applications. In addition, I want GUIs built with it to be user-editable to an extent. Panels should be able to be moved around to different spots, and users should be able to bind keybinds to any button action (similar to Blender).

Currently I have uh... a single button rendering. But it took me a /while/ to even get that, given that I had to make an entire generic graphics backend interface and the whole framework for arbitrary UI elements, using only what C99 has to offer.†

3. FR4NKEN

Okay, this is a fun one. I'm not sure if I'll actually continue this project but it's been very fun so far. It's hard to describe exactly what this project is, as it's trying to be... well... everything. It has no set goal, nor a set way to get there. And an important part of being everything is /using every programming language./ The goal is for FR4NKEN to contain as many programming languages as I can fit into one program (I just realized, the final binary size will probably be /massive/).

It works by creating a C API for `fr_Object`s, which are simply some arbitrary data and a collection of methods. Each method takes in a list of values and returns one value. The values themselves are tagged unions called `fr_Value`s. This allows code to expose itself in a way more complicated than a pure C API, and in a way that's easily reflectable (important for binding to scripting languages later). Really though, this project has just been writing a lot of bindings. I might actually forgo the "writing bindings" part of it and just rawdog the C API for every language, maybe with some utilities. This isn't as elegant but would definitely save a lot of time.

4. Hypersink

Agma Schwa's Cursed Conlang Circus 4[d] has been announced, and I'll be participating as I did the last 2 years. This time, I'm organizing a collaborative project, with the goal to create the most "kitchen sink" conlang ever devised. As well as that, we're planning an interesting documentary-style storyline to go along with it (somewhat in the style of Zewei's winning submission last circus[e]). We have a basic idea of what the final result is going to look like, but we're still making the specifics.

If you want to spoil yourself on what it's going to be like, click here.

5. Conclusion

And that's about it! I have more projects but none of them are particularly active right now. If I end up working on them I'll mention them in other blog posts.

6. Discuss

Geminispace BBS

Raddle

Footnotes

Links

[a] https://en.wikipedia.org/wiki/Enki

[b] /software/xstd.gmi

[c] https://en.wikipedia.org/wiki/Immediate_mode_(computer_graphics)#Immediate_mode_GUI

[d] https://www.youtube.com/watch?v=rMOmWDP_Duk

[e] https://www.youtube.com/watch?v=Ql0VKM7tCCo

Groups

Blog

Writings