Happy Birthday, Marcus Lance!
Started on September 22, 2025
Below is a preview of what you'd expect with the app (as of version 0.4.X):
I just made a Wiki for this project, you can access it here now: DesktopAssistant Wiki
I'm thinking if I should just move everything to the Wiki instead of having most of the information here in the
README.md... Should I?
Below are the current features implemented:
| Feature | Description |
|---|---|
| Hatsune Miku | She'll always be added :) |
| Randomized Movement | Miku can move randomly horizontally |
| Randomized Messages | Miku has a wide selection of monologues that she'll say |
| Different Expressions | Miku has at least 9 different expressions she can choose from |
| Flips | Yes, Miku has a small chance of doing two flips during a movement command |
| Animations | Various smooth animations |
| A Menu | So far, there's only one menu for now |
The planned features below can be found in the experimental branch once development has begun.
| Feature | Description | Completion | Version Implemented |
|---|---|---|---|
| SFX | Sound effects for Miku | 0% | - |
| Easter Eggs | Some special interactions for Miku | 5% | 0.3.0 -> Current |
| Extensive Menus | Add more options and customizability to the menus | 5% | 0.4.1 (Current Pre-Release) |
| Settings Menu | For certain stuff | 0% | - |
| Minigames | Games that you can play with Miku | 0% | - |
| Desktop Assistance | Stuff that could actually assist you with your pc | 0% | - |
- You can run multiple instances of Miku, by just simply running the executable again; the result is a shocker... Mikus Galore! (There's some visual bugs, such as
z-fighting1, but it does work, and may or may not use a lot of your pc's resources).
Below is what this unintended behavior would look like:
This section will be removed once the menu feature has been implemented. The controls being referred here are for interacting with Miku, or used directly on her.
| Button | Action | Additional Actions |
|---|---|---|
| Left Click | Default interaction. | [1] Click twice to open/close the menu. [2] Click and hold to drag Miku around. |
| Right Click | Clicking will open a prompt for exiting. | Click again to exit. > (Doing Right Click twice will exit the app) |
Please do report any issues found that are not solvable with the fixes provided in the tables below:
| No. | Issue | Description | Any Fixes? | Is it Fixed? |
|---|---|---|---|---|
| 1 | Miku suddenly stops her idle animation. | This issue occurs when clicking her registers as a drag event, but is immediately canceled, resulting in the events not registering correctly. | Try Fix No. 2. | Only occurs during overlapping action registers. |
| 2 | After dragging Miku, her position doesn't update, and will return to her initial position pre-drag; happens occasionally, but nothing serious. | This issue is still under scrutiny. | Fixes itself. | Occurs rarely, and probably also during overlapping action registers. |
| 3 | Miku's randomized movement anchor is misplaced once dragged off-screen at the bottom; only happens if you intentionally drag her way below bounds of the monitor. | This issue is still under scrutiny. | Fixes itself if you just don't drag her way below the boundaries of your monitor. | Happens all the time based on my testing. |
| 4 | When launching the app, it sometimes just doesn't stop loading. | This issue is still under scrutiny. | Try Fix No. 1. | Probably only happens if your device has a lot of background apps. |
| No. | Solution | Note |
|---|---|---|
| 1 | Relaunch the app. | Refer to the Controls section. |
| 2 | Move Miku around your screen, then stop. | Refer to the Controls section. |
| 3 | Open any menu. | Refer to the Controls section. |
Footnotes
-
z-fightingrefers to a rendering issue that occurs usually in games. It's a visual bug, that shows rapid fluctuation between two textures that are overlapping each other on the same layer. This issue can be fixed by simply spacing these layers a bit further from the z-axis, which is why they are referred to asz-fighting. As for this app, the band-aid solution I've implemented for when you want multiple Mikus in your desktop, is by simply having them only force aalways bring to frontstate after movement commands, and for a specified duration (such as a second) only. ↩

