A plot comparing the original PCA and a simpler approximation. Accurate (red) and approximate (orange) first principal components are shown. The approximation seems close to the original based on this experiment. The shown directions are aggregated over five random trials.
A new article on my site: Approximate first principal component
It describes simple trick to estimate the direction of most spread of a bunch of points without running a full PCA. Includes my Python re-implementation and plots of some quick tests.
30fps.net/pages/approx...
17.07.2025 17:56 β π 32 π 6 π¬ 1 π 0
Hey Mikko, it's basically impossible for me to find your email address anywhere. Any chance you could DM/email me? My email address is on my website.
06.07.2025 18:00 β π 0 π 0 π¬ 0 π 0
YouTube video by Zig SHOWTIME
Zig Roadmap 2026
The Zig 2026 roadmap is absolute fire. Andrew and team are playing the long game, and it's really starting to pay off big timeβincremental compilation, async await, cross compilation, fuzzing, and more. www.youtube.com/watch?v=x3hO...
04.07.2025 22:47 β π 0 π 0 π¬ 0 π 0
*Tin foil hat* Has Google added a special case for Google Docs in Chrome to show the MacOS accent menu in the right spot? It renders out of the window in Firefox, which is what you'd expect to happen when using a hidden textbox to get input. I cannot find a web API do this. Looks like an inside job.
20.06.2025 20:31 β π 3 π 0 π¬ 0 π 0
Still long way to go, but got the beginnings of IME text composition working in papaya.io. I'm super impressed that @mikkomononen.bsky.social's Skribidi library even has this feature. Here's a video of me typing in 'β₯-u' and then 'o' on Mac, which results in 'ΓΆ'.
15.06.2025 22:35 β π 3 π 0 π¬ 0 π 0
I'm using Skribidi for emoji, FreeType for everything else. :)
12.06.2025 21:18 β π 1 π 0 π¬ 0 π 0
Uh, bsky's image upscaling makes it look weird. But at native res, it's absolutely *chef kiss*
12.06.2025 21:16 β π 0 π 0 π¬ 1 π 0
If you've ever worked with font rendering, then you'll know that it's the most impressive to get the fonts looking good at low sizes, because then hinting comes into play, which is where FreeType shines over other simpler libraries.
12.06.2025 20:51 β π 0 π 0 π¬ 1 π 0
Got simplified Chinese and FreeType variable font rendering to work in papaya.io.
12.06.2025 20:48 β π 2 π 1 π¬ 1 π 0
Multi-script rendering in papaya.io is starting to come together. Here's glyph caching and retrieval across several fonts (including an emoji font)!
11.06.2025 21:08 β π 2 π 0 π¬ 0 π 0
Added intermingled rendering of Latin and emoji (from different font files) to papaya.io. (Also look at that automatic word-wrapping and left-alignment, courtesy of Skribidi!)
09.06.2025 19:00 β π 1 π 0 π¬ 0 π 0
Emoji font rendering in papaya.io with @mikkomononen.bsky.social's github.com/memononen/Sk... library.
Next up: intermingling font and emoji rendering.
08.06.2025 20:57 β π 6 π 2 π¬ 0 π 0
I will open a few GitHub issues with proposed solutions as I get things working in my fork, over the next few days/weeks.
06.06.2025 09:35 β π 0 π 0 π¬ 1 π 0
translate-c: support C bitfields Β· Issue #1499 Β· ziglang/zig
struct Test { unsigned foobar : 1; }; pub const struct_Test = @OpaqueType();
I know this is a relatively obscure use case for you, but Zig does't support C bitfields. github.com/ziglang/zig/...
From my limited research, similar interop issues will arise with Go, Rust and Python ctypes.
If you would accept classic `& IS_RLT` kind of packing, I could include it in my PR.
05.06.2025 21:20 β π 0 π 0 π¬ 1 π 0
translate-c: support C bitfields Β· Issue #1499 Β· ziglang/zig
struct Test { unsigned foobar : 1; }; pub const struct_Test = @OpaqueType();
Apologies for spamming here; I can't seem to find any other way of contacting you, and DMs aren't allowed for non-followers.
Is there any chance you would accept a more old-school bitfield method than `uint8_t is_rlt : 1;`?
05.06.2025 21:20 β π 0 π 0 π¬ 2 π 0
Thanks for the clarification. My build system is fairly complicated, so I won't be able to contribute directly. But I've already found and fixed some minor compilation errors while building with emcc. I'll send a PR with the fixes once I get it working.
05.06.2025 17:02 β π 1 π 0 π¬ 1 π 0
Do you know if there is any rendering quality delta between Skribidi and FreeType?
Also Iβm currently trying to build Skribidi to WebAssembly. Will let you know how that goes. Thank you again for sharing this library!
05.06.2025 16:32 β π 0 π 0 π¬ 1 π 0
Papaya - Image editing right in your browser
Congratulations on the release! Great timing, since I'm just starting to implement text rendering in my side project papaya.io, so lots to learn here for me. I was wondering if you've rolled your own rendering instead of using FreeType, and if so why that is.
05.06.2025 15:38 β π 0 π 0 π¬ 1 π 0
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.
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...
05.06.2025 08:02 β π 65 π 19 π¬ 7 π 0
Hold up. A thin sheet of gold is transparent? π€― That somewhat breaks my mental model of conductors. Is this transparency similar to say water, or is it some other QED phenomenon?
04.06.2025 14:42 β π 0 π 0 π¬ 1 π 0
It is my (potentially flawed) understanding that the imaginary component is zero for wavelengths that are transmitted. And the visible frequency range is visible because eyes first evolved under water.
04.06.2025 12:59 β π 0 π 0 π¬ 1 π 0
(cc @omershapira.com) Fun fact, this is also useful in computer graphics.
The complex IOR can be converted into an F0 (Fresnel reflectance value of a ray aligned with the normal). This can be used in Schlick's approximation. en.wikipedia.org/wiki/Schlick...
04.06.2025 12:57 β π 1 π 0 π¬ 1 π 0
There's a lot more work before I can roll this out to users. But rasterizing this using FreeType + HarfBuzz as opposed to using the browser's canvas means that I can get deterministic rendering across browsers/OSes.
03.06.2025 22:09 β π 0 π 0 π¬ 0 π 0
Started implementing text rendering for papaya.io. Got FreeType and HarfBuzz compiling to WebAssembly. Here's a demo of kerning working with Roboto.
03.06.2025 22:09 β π 4 π 0 π¬ 2 π 0
I'm really excited about the tech behind this:
- Built in Zig compiled to WASM.
- Linking C/C++ libraries (e.g. libwebp)
- Worker threads for async stuff
- Decent test coverage
Overall this is a major simplification of the tech stack, and I think I'll be able to iterate very quickly.
22.05.2025 21:29 β π 4 π 0 π¬ 0 π 0
Just relaunched papaya.io β a web-based image editor I've been building on nights and weekends. What's new:
- .ppy file format for local saves
- Automatic browser persistence
- WebP import/export support
Building fast and shipping features regularly. Try it out β feedback very welcome.
22.05.2025 21:29 β π 6 π 1 π¬ 1 π 0
20.05.2025 09:17 β π 3 π 0 π¬ 1 π 0
Professor at Wharton, studying AI and its implications for education, entrepreneurship, and work. Author of Co-Intelligence.
Book: https://a.co/d/bC2kSj1
Substack: https://www.oneusefulthing.org/
Web: https://mgmt.wharton.upenn.edu/profile/emollick
PhD student, University of Copenhagen
NLP, misinformation, media framing, hatespeech, cultural values, CSS, Pol Comm, AI ethics |
he/him.
https://scholar.google.com/citations?user=EQUUUUoAAAAJ&hl=en
Professor, University Of Copenhagen π©π° PI @belongielab.org π΅οΈββοΈ Director @aicentre.dk π€ Board member @ellis.eu πͺπΊ Formerly: Cornell, Google, UCSD
#ComputerVision #MachineLearning
Professor at the University of Copenhagen. Explainable AI, Natural Language Processing, ML. Head of copenlu.bsky.social lab.
#NLProc #NLP #XAI
http://isabelleaugenstein.github.io/
Professor, Computer Science, University of Copenhagen. Founder Component AI.
Associate Professor of Machine Learning and Signal Processing, Technical University of Denmark (DTU)
https://frellsen.org
AI, national security, China. Part of the founding team at @csetgeorgetown.bsky.social⬠(opinions my own). Author of Rising Tide on substack: helentoner.substack.com
Research scientist at @GoogleDeepMind passionate about AI, genomics and biology.
Doctor of NLP/Vision+Language from UCSB
Evals, metrics, multilinguality, multiculturality, multimodality, and (dabbling in) reasoning
https://saxon.me/
Principal Game Engine Architect at Huawei. Previously: Senior Graphics Engineer at Unity, Research Scientist at Fraunhofer, Tech-Priest at Cult Mechanicus.
https://tobias-franke.eu/
Inventor of things.
Previously: cofounder Beeper.com, partner @ycombinator, founder @pebble
Senior Graphics Engineer, Light Transport @unity.com.
Check out my stuff at http://github.com/pema99 and https://pema.dev
Interested in all things graphics, VR, language dev and functional programming.
@pemathedev on Twitter/X.
Rendering, game engines, scalability, gratuitous over-engineering || πΌ Avatar Perf & Visuals @ Meta || β Skyrim, Vampire Bloodlines, Warhammer Online || π Tiny retro/indie toys in π¦ || π« shannonin3d.bsky.social (Slang/Vulkan/WebGPU/Khronos)
Postdoc at ETH ZΓΌrich, studying geometry processing and geometric deep learning. Previously PhD @TUDelft, research intern @Adobe. rubenwiersma.nl
Invented spatiotemporal blue noise, created Gigi rapid graphics prototyping & dev platform.
https://github.com/electronicarts/gigi
20+ year game dev, and graphics researcher. Currently at EA SEED.
Tech blog:
https://blog.demofox.org/
ai/robotics | eng #15 @Meta | 2x founder/exit | contrib SO-ARM | advisor @Cline
linkedin.com/in/phil-fung
Bun is a fast, all-in-one toolkit for installing, bundling, running and testing JavaScript & TypeScript.
To install Bun:
```
curl https://bun.sh/install | bash -s
```
https://bun.sh
building Bun. formerly: stripe (twice) thielfellowship. high school dropout π