Sign in

Mikko Mononen

@mikkomononen.bsky.social
556 followers 213 following 781 posts

Coder and woodworker. Author of Recast&Detour and NanoVG. Previously at Epic Games, Unity, Tinkercad, Crytek, demoscene. github.com/memononen

PostsRepliesMedia
Reposted by Mikko Mononen
Alan Wolfe @demofox.bsky.social · 8h
df_game_data v1.0.0 released! github.com/Atrix256/df_... An editor and data compiler for read only game data in C++. Describe schemas using C style stucts, edit data in the editor, compile data to make a .bin file and a generated .h, use the .h to load the .bin in your code, make your game.
A small C++ program showing how to use the bin file and generated header file that comes out of df_game_data when you compile data.df_game_data editor showing a character table being edited. it has 3 records: curly, larry and moe. The larry record is being edited.An example .def schema file. It uses C/C++ style syntax for describing data structures. Specify the table entry type using #root.
1278
Mikko Mononen @mikkomononen.bsky.social · 25/09/2026
Very interesting animation tool shown at Blender con: www.youtube.com/watch?v=M2J_... So cool to see the presenter getting zoned it while noodling around with the tool.
youtube.com
Motion Sculpting: A New Animation Paradigm — BCON26
YouTube video by Blender
1110
Reposted by Mikko Mononen
Omar @ocornut.bsky.social · 31/08/2026
Reminder: looking for feedback on ImDrawList improvements slated for 1.93, see post below. If you make extensive use of draw primitives and/or have dealt with careful positioning, pixel-perfect shapes, etc trying this in your project and reporting would be nice!
0114
Reposted by Mikko Mononen
Omar @ocornut.bsky.social · 05/08/2026
Request for feedback for upcoming ImDrawList rework! On April 10 @mikkomononen.bsky.social showed up to "fix a missing pixel", and he/we ended up spending a long time fixing/cleaning/improving many aspects + long last issues of ImDrawList. w/ new pretty Wiki pages! github.com/ocornut/imgu...
github.com
Request for feedback: improved ImDrawList functions (for incoming v1.93) · Issue #9504 · ocornut/imgui
We are looking for feedback/early adopter to test a series of changes/refactor of the ImDrawList system! Any issue? Any misunderstanding? Let us know. Pushed an experimental features/drawlist_193 b...
3298
Mikko Mononen @mikkomononen.bsky.social · 08/07/2026
I just released an extension to stb_truetype that allows you to render COLRv0/1 glyphs, (e.g. emojis). codeberg.org/memononen/co... 1k5 loc, header only, a bit clunky, but gets the job done.
codeberg.org
colr_truetype
COLRv0/1 extension to stb_truetype
0275
Reposted by Mikko Mononen
Erin Catto @erincatto.bsky.social · 01/07/2026
I’m happy to announce the release of a new open source 3D physics engine called Box3D. I’ve been working on this project for a few years now, but it represents over 20 years of experience writing physics engines for games. Read more here: box2d.org/posts/2026/0...
box2d.org
Announcing Box3D
I’m happy to announce the release of Box3D, an open source 3D physics engine. It is now available on GitHub. Box3D repository You can think of Box3D as a fork of Box2D, extended with many features nee...
13783220
Reposted by Mikko Mononen
Nicole Feng @nicole--f.bsky.social · 15/06/2026
I recently completed my PhD thesis, where I developed algorithms for making geometric inferences from imperfect data (i.e. incomplete and inaccurate observations/representations of shapes, like broken meshes or point clouds). A thread 🧵:
25516
Reposted by Mikko Mononen
Mattias Ljungström @spacesofplay.com · 21/05/2026
I'm soft-launching my compiler project minc today. It compiles directly to minimal native executables for x64 Windows (PE), x64/ARM64 Linux (ELF), ARM64 macOS (Mach-O), ARM64 iOS, ARM64 Android (.so), and WASM. See minc.dev
minc.dev
minc — A minimal language for building native software
A minimal C replacement that compiles directly to native executables for Windows, Linux, macOS, iOS, and WebAssembly. No assembler, no linker, no runtime.
2713426
Mikko Mononen @mikkomononen.bsky.social · 17/05/2026
I'm looking for examples of editors where you can select multiple objects, and batch edit some kind of array. How does that work?
100
Reposted by Mikko Mononen
Jendrik Illner @jendrikillner.bsky.social · 31/03/2026
Graphics Programming weekly - Issue 434 - March 29th, 2026 www.jendrikillner.com/post/graphic...
15213
Mikko Mononen @mikkomononen.bsky.social · 27/03/2026
I have been working on data inheritance recently. The kind of stuff that you usually see with prefabs, but I believe that all the assets should support data inheritance.
33810
Reposted by Mikko Mononen
Daniel Holden @theorangeduck.bsky.social · 23/03/2026
Here's a write-up of my investigations into a technique called "Inertial Easing" - an interesting idea on how to use easing functions for spring-damper-like applications. theorangeduck.com/page/inertia...
54412
Reposted by Mikko Mononen
Robin-Yann Storm @rystorm.com · 13/01/2026
Hell yeah! Technically that one’s a Zoo, I gave a talk about them at GodotFest last year: youtu.be/uNyswn-Oct0?...
youtu.be
Robin-Yann Storm: Gyms, Zoos, and Museums: Your documentation should be in-game
YouTube video by GodotFest
0133
Mikko Mononen @mikkomononen.bsky.social · 13/11/2025
Links... links are special. Usually you pick the text style from the previous character, so that if you write something after a bold text, it will be bold. Except links, where the style does not "bleed". It's ok to type in the middle, though.
170
Mikko Mononen @mikkomononen.bsky.social · 29/10/2025
I have been working recently on input rules for the skribidi editor. Stuff like: - what happens when you press enter after a header - automatically starting a list when you start a line with -, - or stuff like keeping the tabs in taps when typing code (who uses spaces, anyways!)
1100
Mikko Mononen @mikkomononen.bsky.social · 14/10/2025
So nice to finally get to the actual rich text editing, not just the stuff that enables it. Still ways to go, but baby steps. There's a lot of rich text editing tricks to discover, like that when you press enter after a header, you will automatically get body text style.
1110
Mikko Mononen @mikkomononen.bsky.social · 25/09/2025
I've been working on paragraph styling support for skribidi. My goal is to support roughly markdown for the rich text rendering and editing. I'm trying my best to not make things complicated. For example I really would like to avoid adding hierarchy to the text.
191
Mikko Mononen @mikkomononen.bsky.social · 15/09/2025
For the past weeks I have been writing and refactoring things to get rich text editing to work in Scribidi. It's so close now. There are always tons of small details, like changing the caret to preview the italic/oblique.
1101
Mikko Mononen @mikkomononen.bsky.social · 11/09/2025
I kinda wish the situation around char32_t was not such a mess. <looking at you macos and flipping a birdie>
110
Mikko Mononen @mikkomononen.bsky.social · 25/08/2025
The hardest part about rich text editing so far has been trying to remember that you have to actually have bold, italic and bold+italic fonts loaded if you want to see them bold and italics. Gladly harfbuzz has embolden and slant so that I can fake it.
060
Mikko Mononen @mikkomononen.bsky.social · 23/08/2025
There's still heaps to do, but...
0210
Mikko Mononen @mikkomononen.bsky.social · 21/08/2025
I've been looking a nice representation of style spans for the Skribidi rich text editor. Something that let's me store info: "from here to there text is bold". It should also support combining such spans using add or remove a span. And I wanted it to be "not much more complex than bit vector".
110
Mikko Mononen @mikkomononen.bsky.social · 19/08/2025
I've been working on things that will allow users of Skribidi to create hyperlink or button kind of interactions. The biggest struggle is how to make things simple. I dont want to include an UI library in the text library (that would be another project). But it should not be too hard either.
170
Mikko Mononen @mikkomononen.bsky.social · 01/08/2025
I have been working on inline objects for Skribidi. Things like icons and stuff that you want to embed in the text. This merited another visit to the vertical text alignment rabbit hole. A lot of frustration and hopefully a solution.
150
Mikko Mononen @mikkomononen.bsky.social · 28/07/2025
I have been working on text alignment, wrapping and overflow for Skribidi. It's been pretty hard to find a good reference since the CSS in that area does not feel very solid to me. Ended up with some parts of CSS and some parts of Figma.
130
Mikko Mononen @mikkomononen.bsky.social · 25/07/2025
Any caveas using symlinks on Windows? Context: In the Skribidi project, I have a set of assets that the example needs (fonts, etc). Currently they are copied to the bin folder in windows, and symlink on other systems. I wonder if there's something with Windows symlinks that will say meh?
112
Mikko Mononen @mikkomononen.bsky.social · 20/07/2025
Sum types have been in the lime light recently. Is there a lang where the user (of a library) can "append" to a sum type?
210
Mikko Mononen @mikkomononen.bsky.social · 15/07/2025
The devil is in the details! In design, things are often made just a bit different so that they appear consistent and balanced. en.m.wikipedia.org/wiki/Oversho... en.m.wikipedia.org/wiki/Kerning en.m.wikipedia.org/wiki/Optical...
en.m.wikipedia.org
Overshoot (typography) - Wikipedia
182
Mikko Mononen @mikkomononen.bsky.social · 01/07/2025
Implemented the actual underline patterns for Skribidi. A bit more plumbing that I hoped for, but not it's done.
150
Mikko Mononen @mikkomononen.bsky.social · 19/06/2025
I have recently been working on how to represent text attributes (color, font, underline, etc) for Skribidi. It's coming together and managed to get underline working.
260
Reposted by Mikko Mononen
Daniel Holden @theorangeduck.bsky.social · 18/06/2025
I've added an appendix to my page on debug drawing text with lines with a contribution from @mikkomononen.bsky.social and his version of a non-monospaced font based on the Hershey Fonts Simplex characters: theorangeduck.com/page/debug-d...
1193
Mikko Mononen @mikkomononen.bsky.social · 11/06/2025
One of the text input features I have been wanting to try out is input method editors (IME). Felt like 🪱🥫so I have been postponing it. The IME itself is not part of Skribidi, it should be handled by the platform abstraction, but showing the IME composition is.
190
Mikko Mononen @mikkomononen.bsky.social · 09/06/2025
Spent couple of hours trying to get the Skribidi example to run on the web. Tried to follow a couple of examples, but they just did not work, or I did not have something installed (e.g. emcmake). <sigh> Maybe one day I'll try that again.
000
Reposted by Mikko Mononen
Apoorva Joshi @apoorvaj.io · 08/06/2025
Emoji font rendering in papaya.io with @mikkomononen.bsky.social's github.com/memononen/Sk... library. Next up: intermingling font and emoji rendering.
062
Reposted by Mikko Mononen
Omar @ocornut.bsky.social · 06/06/2025
If you are in a mood for helping you can update your Dear ImGui app to `dynamic_fonts` branch this week-end and write/share all your thoughts/feedback there: github.com/ocornut/imgu... If all goes well : merge to main soon, create a new unpolluted thread for collecting feedback.
github.com
Request for feedback: dynamic fonts & texture updates (v1.92) · Issue #8465 · ocornut/imgui
Pushed an experimental features/dynamic_fonts branch. 2025/03/19: pushed a "big" change reverting the renaming ImTextureID to ImTextureUserID from the March 5 version. This is simpler for end-user,...
1399
Mikko Mononen @mikkomononen.bsky.social · 05/06/2025
I just published the bidi text stuff I have been working the past months. It's called Skribidi (because all text and font related things need funny name for some reason). github.com/memononen/Sk...
github.com
GitHub - memononen/Skribidi: Nimble bidirectional text stack for UIs
Nimble bidirectional text stack for UIs. Contribute to memononen/Skribidi development by creating an account on GitHub.
76519
Mikko Mononen @mikkomononen.bsky.social · 04/06/2025
What is the best practice for texture uploads these days? Thinking of atlas texture update API. Can I do a bunch of small updates, or one big? Last time I checked, the upload overhead was so big that one upload was better than many small.
310
Mikko Mononen @mikkomononen.bsky.social · 30/05/2025
I'm almost done with the first version of my text library thing. The stuff left to do are api docs and allowing to exit the sample app (I have a feeling that some of the games I worked in the past had similar final showstopper too :)).
2110
Mikko Mononen @mikkomononen.bsky.social · 27/05/2025
I've been looking into vertical align of text. Yes, it's complicated (confusingly convoluted) as anything else in the text layout and rendering world. This is great write up on the topic (and very timely for me!) wolthera.info/2025/04/goin...
wolthera.info
Going in depth on Font Metrics. – Wolthera.info
0101
Mikko Mononen @mikkomononen.bsky.social · 26/05/2025
While cleaning up the code, I rewrote shelf allocator to use "vertical allocator" like github.com/nical/etagere That allowed me to let the middle rows to grow too if there's empty space above. I previously had that only for the last row. It seems to help once there starts to be fragmentation.
1120
Mikko Mononen @mikkomononen.bsky.social · 24/05/2025
Boring you with more atlas tests! Turns out that shelf packing + columns can do as good as the binary partitioning packing.
2150
Mikko Mononen @mikkomononen.bsky.social · 23/05/2025
Binary tree atlas goes... wroom :) I've never used this algorithm before, but I like it! This is straight up implementation of Blackpawn atlas: blackpawn.com/texts/lightm... But added remove and consolidation.
1275
Mikko Mononen @mikkomononen.bsky.social · 22/05/2025
Atlas shelf-packer goes... pfffft :( I remember having the same issue way back then in font stash.
161
Mikko Mononen @mikkomononen.bsky.social · 20/05/2025
Is there a way to see how much mmapped file actually uses memory (on windows)? Harfbuzz supports mmapping the font file, which sound really nice e.g. for emojis, which are really big files, but you usually access tiny just part of it.
100
Mikko Mononen @mikkomononen.bsky.social · 15/05/2025
Anyone on Rider 25.1.2 and have it take 30% CPU on idle?
300
Mikko Mononen @mikkomononen.bsky.social · 14/05/2025
Does anyone have a good API in C for getting dynamic array of results back? Sometimes it is possible to do a "double call", where you pass in array + max size (which both can be null), and it always returns the actual number of items.
260
Mikko Mononen @mikkomononen.bsky.social · 07/05/2025
I've been working on texture atlases recently. For dynamic atlases, I have liked the skyline packer as it's simple and effective. And growing the atlas texture up to certain point and then rebuilding everything has worked well as garba collection strategy.
1161
Mikko Mononen @mikkomononen.bsky.social · 04/05/2025
I came across this old presentation while searching for non-uniform scaling for SDF rendering. Has anyone put that in practice? www.essentialmath.com/GDC2015/VanV...
essentialmath.com
221
Mikko Mononen @mikkomononen.bsky.social · 25/04/2025
I have been looking into SDF font rendering lately (again). I want to find an option that is faster than the analytic method (e.g. used by stb_tt and FT), as it gets into the hundreds of milliseconds per glyph on larger sizes. I also wanted something that has a change to work with emojis.
110
Reposted by Mikko Mononen
Ray @raysan5.bsky.social · 20/04/2025
"Behind every open-source project is a human being with limited time and energy, often working without compensation or recognition." Interesting article by @trevorlasn.bsky.social: www.trevorlasn.com/blog/open-so...
trevorlasn.com
Open-source is where dreams go to die
Work for free and in return watch your passion get crushed by entitled users who are never satisfied
38924