stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Kaanreal

@Kaanreal

Joined June 27th, 2026

  • 12Devlogs
  • 4Projects
  • 7Ships
  • 150Votes
I like making software that feels nice to use. https://github.com/kaanreal
Ship 💀 Cursed

This update is mostly about making Henkan feel a lot more complete on desktop.

You can now save conversions directly into your detected osu!stable and Etterna song folders, so there’s way less manual moving files around. I also redesigned the desktop navigation and added proper pages for conversion history and your local osu! skin library.

Pack conversion got a pretty big upgrade too. You can select which difficulties you actually want to convert, review the metadata for each song, and packs using multiple audio files are now automatically separated into individual songs. I also fixed metadata handling so every map keeps its own artist, title, subtitle, audio and background instead of accidentally sharing data across the pack.

Live map detection can now be controlled separately for osu! and Etterna, and Henkan remembers the background of the last map you opened even after restarting.

There are a bunch of smaller fixes too: faster pack conversion, better Etterna timing and current-song detection, preserved audio bitrate when changing rates, cleaner loading states and buttons, fixed navigation, plus some macOS and Linux specific fixes.

The docs were also refreshed, and Henkan finally has its new domain:

https://henkan.kaan.moe

  • 2 devlogs
  • 24h
  • 17.32x multiplier
  • 173 Stardust
Try project → See source code →
Open comments for this post

12h 47m 41s logged

Hello! I worked on Henkan a lot again, mostly on making the desktop app nicer and faster to actually use.One of the biggest changes is that Henkan can now save conversions directly into your detected osu!stable or Etterna song folders. So instead of exporting something and moving it into the game manually, you can just convert it and have it show up where it belongs.I also redesigned the desktop navigation and added pages for your conversion history and local osu! skins. The live map detection settings were improved too, so osu! and Etterna hooks can now be enabled separately.Pack conversion got a lot of work as well. You can select individual difficulties before converting, check the metadata for every song, and packs with different audio files are now split into separate songs automatically. I also fixed a bunch of cases where maps inside a pack could lose their own artist, title, audio or background.The converter now remembers the background of the last map you opened too, even after restarting Henkan. It’s a small thing but makes the home screen feel a lot less empty.There were also a bunch of smaller changes. Loading states and buttons are more consistent, navigation is less messy, pack conversion is faster, Etterna timing and current song detection were improved, and changing song rate now keeps the original audio bitrate.I fixed some platform specific stuff too, mainly the osu!lazer background bridge on macOS and Etterna song detection on Linux.I also refreshed the docs and finally moved Henkan to its new domain
https://henkan.kaan.moe
registrar might be slow so try
https://henkan-chi.vercel.app/

0
0
23
Ship Changes requested

Selfaware 1.0.0 is out.

This is the first proper release of Selfaware, a client-side Minecraft mod that lets you see your own nametag while playing in third person.

The main idea is simple, but I wanted it to feel like something that actually belongs in Minecraft. Your nametag follows the normal rendering behavior, and Selfaware can also match server-specific nametag styling instead of always showing a basic vanilla label.

There are a few integrations already included. On DonutSMP, Selfaware can show your own rank, prefix and balance. Simple Voice Chat is also supported, so your own voice and group icons can appear next to your nametag.

There is also a settings menu with a live player preview, options for the different integrations, and everything can be changed without leaving the game.

A big part of this first release was compatibility. Selfaware already supports a lot of Minecraft versions and works across Fabric, Forge, NeoForge and Quilt where available. The project is structured so I can keep adding versions without having to maintain completely separate mods.

You can try the first release here:

https://github.com/kaanreal/selfaware/releases

or on Modrinth:

https://modrinth.com/mod/selfaware

  • 2 devlogs
  • 20h
Try project → See source code →
Open comments for this post

12h 13m 15s logged

Hello! Today I continued working on Selfaware.I mainly focused on fixing issues across different Minecraft versions and mod loaders, so everything works more consistently. There were a few version-specific problems from yesterday that are now cleaned up.I also added a proper menu for Selfaware. It makes the mod feel a lot more complete and gives me a good place to add settings and new features later.Besides that, I spent some time cleaning up the overall project structure. Since I want to support a lot of Minecraft versions and mod loaders, I wanted to get the structure right early instead of having everything become messy later.The base is now in a much better state, so I can start focusing more on actual features next.

0
0
15
Open comments for this post

10h 59m 3s logged

Hello! I worked on Henkan again and added something I’ve wanted for a while. Henkan can now detect the map you currently have open in osu!stable, osu!lazer, or Etterna and show it directly in the converter. No tosu or any other external tool required.This makes it much faster to open Henkan and immediately work with the chart you’re currently playing or editing.Still working on making the whole workflow between osu!mania and Etterna feel as seamless as possible.

0
1
75
Open comments for this post

7h 59m 34s logged

Hello! Today I started working on a new project called Selfaware.Selfaware is a Minecraft mod that displays your own nametag above your head while playing in F5. I tried a few other mods that do something similar, but I found them a bit too simple, so I wanted to make my own version with more features.I want Selfaware to support things like server specific nametag formatting, DonutSMP features, Simple Voice Chat icons for yourself, and more in the future. I also want to support as many Minecraft versions and mod loaders as possible.Today I mainly worked on the base of the mod. So far, all supported versions and mod loaders seem to be working correctly, and the nametag is rendering properly. I also added Simple Voice Chat support, so you can now see your own voice chat icons above your nametag.

1
0
54
Ship

This update is mostly about getting Henkan into more places.
Henkan can now be installed through winget, Homebrew, the AUR, Chocolatey and nixpkgs. If you use a normal package manager, you don’t have to hunt down the GitHub releases anymore.
The site got some attention too. All pages are usable on phones now, and shared links show a proper preview card. I also changed the app icon and logo to a new emblem, which now shows up everywhere, from the desktop app and favicon to the package managers above.
Smaller fixes: the preview receptors now line up with the note art, so the editor and the game agree on how the chart looks.
You can try the latest release here:
https://github.com/kaanreal/henkan/releases
Its really hard to provide screenshots or other things cause it is really niche

  • 1 devlog
  • 5h
  • 15.89x multiplier
  • 83 Stardust
Try project → See source code →
Open comments for this post

5h 12m 6s logged

Hello! I’ve kept working on Henkan, and shipped quite a few updates since v1.5.0. The biggest new feature is a playable beatmap preview. The editor can now autoplay charts when you’re not interacting with it, notes render underneath the receptors like they do in osu!mania, and the HUD stays properly centered. It makes it much easier to get a feel for how a chart actually plays before exporting it instead of only looking at the note data.Henkan also supports 8 languages now. While adding localization, I ended up removing i18next and replacing it with a much smaller custom localization system. Henkan doesn’t really need everything i18next provides, so this keeps things simpler and lighter.I also improved importing incomplete osu! beatmaps. If you only have an .osu file and the audio or background is missing, Henkan can now automatically try to fetch the missing files from an osu! mirror.There were also a bunch of smaller conversion fixes. Skin images are handled more reliably, and previews should now be closer to what you actually see in-game. Release notes are fetched properly from GitHub instead of using the old placeholder, and config overrides now work consistently in both conversion directions.osu! exports got some fixes too. Backgrounds are included even when the source chart doesn’t directly reference them, cdtitle files are only copied when they’re actually needed, and hold notes were cleaned up to follow the normal osu!mania format with proper hitsounds and clean samples instead of creating unnecessary or broken sound files.I’ve also been trying to close the gap between the desktop and web versions. The web build now has much closer feature and export parity with the Rust/Tauri version, and CI automatically rebuilds the WebAssembly binaries whenever something is pushed to main.Keeping both versions in sync is still one of the more annoying parts of working on Henkan, since some converter changes have to be implemented separately for Rust and WebAssembly, but it’s getting a lot better.The goal is still the same: make Henkan the most reliable way to move charts and skins between osu!mania and Etterna without randomly losing important data.

0
0
29
Ship

This update is mostly about making Henkan nicer to actually use.

The biggest change is the beatmap preview. It can now autoplay the chart when you leave it idle, with notes falling under the receptors like in osu!mania and the HUD staying centered. It makes it way easier to get a feel for a chart before exporting instead of just staring at static note columns.

Henkan is also now available in 8 languages. While adding localization, I ended up replacing i18next with a small custom system since I really didn’t need a whole library for what Henkan uses. It’s simpler, lighter, and still covers the entire app.

I also added something I’ve wanted for a while: if you import a random .osu file without its audio or background, Henkan can now try to grab the missing files from an osu! mirror automatically. So incomplete beatmap folders are a lot less annoying to deal with.

There are some smaller fixes too. Skin images are handled more reliably, previews should match the actual result better, and the updater now gets the real release notes from GitHub instead of showing a placeholder.

You can try the latest release here:
https://github.com/kaanreal/henkan/releases

Its really hard to provide screenshots or other things cause it is really niche

  • 1 devlog
  • 5h
  • 18.03x multiplier
  • 88 Stardust
Try project → See source code →
Open comments for this post

4h 52m 25s logged

Hello! I’ve kept working on Henkan, my osu!mania ↔ Etterna converter, and shipped quite a few updates since v1.5.0.The biggest new feature is a playable beatmap preview. The editor can now autoplay charts when you’re not interacting with it, notes render underneath the receptors like they do in osu!mania, and the HUD stays properly centered. It makes it much easier to get a feel for how a chart actually plays before exporting it instead of only looking at the note data.Henkan also supports 8 languages now. While adding localization, I ended up removing i18next and replacing it with a much smaller custom localization system. Henkan doesn’t really need everything i18next provides, so this keeps things simpler and lighter.I also improved importing incomplete osu! beatmaps. If you only have an .osu file and the audio or background is missing, Henkan can now automatically try to fetch the missing files from an osu! mirror.There were also a bunch of smaller conversion fixes. Skin images are handled more reliably, and previews should now be closer to what you actually see in-game. Release notes are fetched properly from GitHub instead of using the old placeholder, and config overrides now work consistently in both conversion directions.osu! exports got some fixes too. Backgrounds are included even when the source chart doesn’t directly reference them, cdtitle files are only copied when they’re actually needed, and hold notes were cleaned up to follow the normal osu!mania format with proper hitsounds and clean samples instead of creating unnecessary or broken sound files.I’ve also been trying to close the gap between the desktop and web versions. The web build now has much closer feature and export parity with the Rust/Tauri version, and CI automatically rebuilds the WebAssembly binaries whenever something is pushed to main.Keeping both versions in sync is still one of the more annoying parts of working on Henkan, since some converter changes have to be implemented separately for Rust and WebAssembly, but it’s getting a lot better.The goal is still the same: make Henkan the most reliable way to move charts and skins between osu!mania and Etterna without randomly losing important data.

0
0
15
Ship

Hello, I’ve continued working on Henkan, my osu!mania ↔ Etterna converter, and released several major updates since my first ship.

The biggest addition is full skin conversion. Henkan can now convert osu!mania skins into Etterna noteskins and convert Etterna noteskins back into osu!mania skins. This required handling lane textures, sprite sheets, high-resolution assets, Lua files, metrics, redirects, and the different ways both games structure their skins.

I also added customizable difficulty name presets. Exported charts can automatically use information such as the title, artist, creator, original difficulty name, or calculated MSD. Users can also change the column width when exporting to osu!mania.

Several conversion issues were fixed, including problems with extreme BPM values, export filenames, media files, and configuration support. The web version now behaves much more like the desktop app, with matching exports and features across Rust, Tauri, and WebAssembly.

I also improved the project outside of the main application. Windows builds now use NSIS installers, Henkan is available through the AUR, the documentation has been expanded, the CI workflows have been cleaned up, and I added an end-to-end test for the skin converter.

Keeping the desktop and web versions consistent is still one of the hardest parts of the project, since converter changes often need separate implementations for Rust and WebAssembly. My goal is still to make Henkan the most reliable way to move charts and skins between osu!mania and Etterna without losing important data.

  • 2 devlogs
  • 32h
  • 19.37x multiplier
  • 387 Stardust
Try project → See source code →
Open comments for this post

12h 29m 40s logged

Henkan Devlog (v1.3.1 → v1.5.0)

v1.4.0 (July 20-23)

This update was mainly about skin conversion. I added support for converting osu!mania skins to Etterna noteskins and back. It ended up being much bigger than I expected, with over 1,600 lines of code just for the converter.

I also added difficulty name presets with placeholders like title, artist, creator, difficulty, and MSD, fixed an issue with extreme BPM values, and added a column width setting for osu!mania exports.

Outside of the app, I improved CI, switched Windows installers to NSIS, added AUR support, improved the documentation, and wrote a full end-to-end test for skin conversion.

v1.5.0 (July 24-26)

This update focused on making the web version behave the same as the desktop app.

I fixed export names, media handling, and config support so browser exports now match Tauri. I also fixed a spacebar shortcut bug, made update notes render as Markdown, and cleaned up the CI workflows.

Keeping the web and desktop versions in sync is still one of the hardest parts since every converter change has to work in both Rust and WASM.

0
0
8
Open comments for this post

19h 51m 37s logged

Devlog — Countdown fix + WASM sync

Fixed countdown being on by default when converting Etterna to osu. Added
Countdown: 0 to the [General] section in the converter, the dummy diff
generator, and the TypeScript equivalent.

Discovered the web version was using a stale pre-built WASM binary that
didn’t have any of the Rust fixes. Created wasm-core/ — a new crate that
builds WASM from the same Rust source via #[path] references. No code
duplication.

Added npm run build:wasm for local rebuilds and a CI job that auto-rebuilds
WASM on push to main so it never goes stale again

0
0
9
Ship

I built my personal portfolio website with Astro and Tailwind CSS. It started as an attempt to improve my GitHub profile but evolved into a complete site. It includes live Discord integration, GitHub-powered project pages, multiple pastel themes with dark mode, and dedicated sections for my projects, creative work, socials, and more. The site is fully deployed on GitHub Pages with automatic builds through GitHub Actions.

Try project → See source code →
Open comments for this post

2h 47m 33s logged

Started out wanting a nicer GitHub profile README… somehow ended up building a full portfolio in Astro + Tailwind.Went through a ton of iterations until I finally found a style that actually feels like me. It started with a dark theme, but I switched everything to a warm peach/cream aesthetic and it fits way better.Added live Discord integration with Lanyard, so my profile picture, activity, and even the site’s accent color update automatically. Built different sections for my projects, creative work, socials, and osu!, added a pastel theme picker with dark mode, polished the contact modal, made the favicon follow my Discord avatar, and finished it off with automatic GitHub Pages deployment. Definitely one of those projects where the small details took the longest, but they make the biggest difference.

0
0
7
Ship

Hello, I made an osu!mania ↔ Etterna converter called Henkan (変換).

I started the project because I noticed that most existing converters didn’t preserve maps correctly. Timing would drift, BPM changes would be lost or simplified, and long notes would often break during conversion. I wanted to build a converter that focused on accuracy instead of quick conversions.

Henkan converts beatmaps between osu!mania (.osu / .osz) and Etterna/StepMania (.sm) while preserving the original chart as closely as possible. It keeps millisecond-accurate note timing, supports multiple BPM changes, correctly converts long notes, preserves metadata such as title, artist, creator, difficulty, and preview point, and keeps background references.

The application is written as a native desktop app using Rust, Tauri, and React, making it lightweight and fast on Windows, macOS, and Linux. It also supports converting entire packs, allowing users to process many maps at once instead of converting them individually.

One limitation is that scroll velocity (SV) is not converted from osu!mania to StepMania because the .sm format does not have an equivalent representation for osu!’s green-line SV changes.

My goal with Henkan is to provide a reliable converter that players can trust to preserve their charts accurately instead of introducing timing errors or losing important map information.

Try project → See source code →
Open comments for this post

1h 44m 35s logged

Hello, today I polished and finished the newest version of Henkan! This version is now the most stable version that also introduced an web based app.

0
0
10
Open comments for this post

5h 15m 29s logged

Hello, today I fully worked on making my project available for the web via Vercel! I had to solve many issues like permission issues , timing issues , upload issues and more , I eventually fixed it and can say that it’s working stable now! Now I have to sleep…

0
0
5
Open comments for this post

14h 16m 22s logged

Hello, this is my first log! I have to admit that my project is kinda niche but it fills the gaps of the rhythm game community. Short introduction : Im making an advanced osu!mania ↔ Etterna beatmap converter to simplify the mapping and playing of maps. I really depend on making it high performance and feature rich, for example: I had to go through many issues like fixing timing issues , conversion logic , or other things, but I learned from it and fixed them in a way that sets other converters in the ground. I started my project a few days before I found out about stardance hack club so im kinda sad that this time doesn’t count :(. Anyways, im happy to share my progress from now on. Today I focused on developing the CLI for my project and polishing some things, I think it turned out great

0
0
24

Followers

Loading…