aerkiaga's blog

Progress report on my projects

This week I decided that I would mainly work on my game Nodeverse, which has just hit 2000 downloads on ContentDB 🥳. Here's what I've been able to accomplish:

  • Now ships persist across server restarts, clients joining and leaving. Their data is serialized in a compact format to minimize I/O operations in future versions. You can even fly a ship, quit and rejoin, then keep flying right where you left off!
  • Unboarding a ship will place you outside it, at a location that makes sense, like next to it at the nearest reasonable spot, or on top if you've landed on a liquid.
  • I added a dozen new sound effects; these are all footstep sounds to make the experience more immersive. Still, I'm not quite satisfied with all the sounds and will probably polish some of them a little more.
  • I've begun the work to compose a title screen theme for Nodeverse. I'd like it to be an orchestral piece with a more adventurous, rather than spacey, vibe to it. Not sure if this will land on 0.2 or 0.3.
  • A little tweak to grass soil textures to make them more diverse, ported to the 0.1.x branch.

With this, most of the ship-related infrastructure is in place for 0.2. For your interest, here's the list of things I'm still planning to do before the release:

  • Add many nodes for shipbuilding. The current ones are only for test purposes, and don't allow for very good-looking or customizable ships.
  • Polish the sounds and textures a bit more.
  • Finish the title theme. I may as well put this off.
  • Changes to world generation, like a couple new nodes and more interesting caves. I'm also unsure about this.
  • Make the ship code more general and add an API. This is because this code will be reused for other cool features in version 0.3. But it's also important regarding the next point.
  • Create a new mini-game making use of the 0.2 ship mechanics. Something like finding various ship pieces on different planets and using them to improve or customize your ship. I'm open to suggestions :)

What nodes should be added? Should the focus be on making ships realistic, visually appealing or customizable? I'm not entirely sure of that, if you want to discuss this or other stuff, you can do so at ContentDB threads or forums, GitHub or @aerkiaga:matrix.org.


While that's been my main focus this week, I've also been working hard on my project to embed electronics into 3D printed parts. Right now as I write this, a small test setup is running and reporting voltages continuously on my laptop. It's still too early to determine if the test is going well, let alone whether the technique will even serve my needs... That'll have to wait until next week, so stay tuned!

Unfortunately, I've had an issue with my 3D printer, so that might delay further tests a few days. Also, while I try to be as productive as I can regarding these projects, as a medical student I'm still severely limited by time and exams. So streamlining my workflow (as I've done here building an electrical tool to automate these tests) is vital to ever seeing projects completed.

I've finally had the time to get my hands on my new 3D printer! Armed with OpenSCAD, Cura and my growing codebase of custom scripts, I am finally ready to start working on some serious stuff.

I've had a custom OpenSCAD gear library since December, featuring very fast-rendering gears of all kinds. I just couldn't get bevel gears right... This week I finally managed to. I printed those double helical bevel gears and they couldn't mesh better! Right now I'm trying to get some printable bearings; after some trial-and-error I've decided for a herringbone cycloid gear bearing.

Last week I polished my 3D-printable electronics/fluidics scripts. This week I've been able to actually test and debug them against the real thing; plus I've kept on adding new features.

I've sent an update to the PrinterOS Discord, informing them of this progress and what I intend to do next: embed electronics into the print (well, “printable electronic circuits” should imply this, but anyway...). I have some tricks up my sleeve for that, but unfortunately it's just too stupid of a method to tell anyone before checking it actually works :) And no, it's not conductive filament, that's basically like a nicely shaped resistor.


Regarding other projects, I've added a unit test to a Minetest pull request I made a while ago. Not much actually, but tests are important, right?

I've learned a lot about bolts from a couple of textbooks lent by a friend. There are other interesting engineering subjects written about in there so I may as well give them a good read too. In particular, now I can actually buy bolts in my local hardware store, using some more specific terminology than “bolts, star-shaped hole, small”.

What does one do when a software bug is annoying them? Report it to the developers, of course. But there's one cool thing with Open Source software: you can also do it yourself!

I did this with LibreOffice back in the day (just kidding, that's only last year). I reported the bug in November 2020, self-assigned it in March 2021, and after learning the ropes, sent a fix in May. Et voilĂ ! Now I can make clinical statistics charts without the data series going haywire! Could I have done this with MS Office, huh?

So, fast-forward to November 2021, when I reported this bug in Avogadro, one of the programs in the Open Chemistry suite. These months I've come to believe this project should be getting more love from contributors (just look at the name, it's important stuff!). Seeing how little manpower such an important project gets has inspired me to, hopefully, work for them in GSOC 2022.

But that's a whole different matter. Here I'm talking about a bug that was, well, bugging me; and it seems like I've grown less patient and more efficient since last year. Because this time I only waited until January, and sent in a fix two days later, this week. It also helps that the Open Chemistry codebase has such well organized code, heck I want to spend the summer diving into it so badly!


Now, honestly that's not taken up much time this week. Most of it was spent improving the code I want to use for fully 3D-printing hydraulic and electronic circuits. It's not yet in a state wherein I could comfortably publish it (FOSS ftw ;), but at least I've implemented the ability to export the prints. The hackers and makers among you will love this...

I've also become more familiar with the theory behind dielectric spectrocopy, and I'm pretty positive that I could use it for my intended purposes if I design the circuits carefully.

Also a friend has quite a few spare stepper motors to sell cheap, so that's some monies I could shave off the BoM for the Big Project. A project still expensive for my standards, but it's something.

Btw, if you would like to contact me for any reason, drop me a text at @aerkiaga:matrix.org.

There's a chance you know about the electric-hydraulic anlogy. An analogy between two fields I happen to need, in combination, in two of my projects... Now, I've got an exam on neurology and cardiology next week. Apparently unrelated, huh?

What if I show you this article related to neurology? Or this one to cardiology (no, that graph is not from a half-wave rectifier with a smoothing capacitor). Or this whole bunch of literal circuit diagrams taken straight out from medical-related publications? See the pattern now?

Well, this is the simple fact that both engineers and nature look for solutions to fight the very same physical laws (also scientists don't like reinventing the wheel). And this week I'm studying all these four “similar” subjects; isn't that terribly beautiful? :D

By the way, I'm much less interested in those four than I am in the psychiatry-computer science duo; and I might be forcing the analogy at this point, but I want to believe it's no coincidence that I want to become a psychiatrist... Deep Learning, anybody? Anyway, don't mind my ramblings ;)


This week, after having previously contacted them, I sent an e-mail to the FSFE translators mailing list with a list of changes to help correct the faulty spanish translation of their PM/PC Open Letter. I hope their campaign ends up being successful!

My Big Project is related to the field of biotechnology. I need to make it reliable for critical applications, while still being open to flexible use. One particular problem I've faced is storage: how can I implement an atomic, consistent filesystem that's still dead simple and standard? Well, I've been working a bit on that front. I want to create a protocol that's verified by automated proof and then show it to people that might also find it useful.

And, last but not least, I've made the decision that I want to participate in GSOC 2022, as, for the first time, it allows non-CS students to get onboard! I've read the rules and everything, but I'm worried that my being a med student will get my proposal turned down... Oh, yes, I only intend to send one, to this organization (provided they even participate...). I've been reading their source code this week so at least I get a head start; I'll need to set up a computational chemistry workflow though.

This week has been marked by productivity; that, and bad sleep. I ...

  • ... published Nodeverse 0.1.6 with many bug fixes. One of them had been reported back in August!
  • ... sent three pull requests to the engine developers. Two of them are related to API documentation, and one has already been merged. I tend to follow engine development very closely.
  • ... started this blog, obviously :)
  • ... learned more about AC circuits. I'll need that knowledge for the printer, but especially for the Big Project (it needs several RF dielectric spectroscopy circuits).
  • ... bought many presents for my relatives and friends! Yay!
  • ... made a visit to someone in a different city. Sorry, no details on this.

Did I mention I have a final exam tomorrow? Yeah... It's about this. Not my cup of tea, not terribly complicated either; I could probably have studied more if I hadn't done any of the above things :/ Or if I had studied at all before this week. But, y'know, procrastination... Of the productive kind.

Well, there's some good news too. The new 3d printer has arrived, so hopefully I will start using it in the coming days.

Also, Nodeverse is becoming much more popular. Now over 1600 downloads, it got its first positive review, stating that it “needs some work, but we could be looking at the next No Man's Sky”! Not sure about the last part, but I sure will put that work in. The game currently appears on the first page of the ContentDB “Top Games” list... which is only 3 pages long anyway, but hey, that's something!

The New Year is already here, and nothing can make a year as memorable as, well... writing everything down!

I'm Aritz Erkiaga, currently a Medicine student at the University of the Basque Country. But, for someone as curious as me, learning and making are unavoidable side quests, so as projects come and go, I'll keep track of my progress around them here.

As of right now, in the middle of the exam period, there are three main creative projects behind my procrastination: * Nodeverse, a space exploration game inspired by No Man's Sky, but with voxel mechanics. * An open-source printer; it started as a proposal by a social network user, then evolved into a project involving multiple people... Although only I seem to be working on it at the moment. * Something else :) A big, big project that I expect to talk more about in the future.