back
user profile

raphlinus

13,685karma·1,846submissions·March 7, 2014
about
I do research on fundamental UI technology and 2D graphics, with a focus on Rust and fonts. @raph@mastodon.online
recent activity (1,846 total)
comment
Why thank you :) People may not know that Inconsolata is now a 2-axis variable font with a particularly wide width range: 0.5 to 2.0 of the nominal width.
4y ago·view thread
comment
This is very much changing. IMHO, doing shader language design today, you should give let the programmer express things in the most natural way possible, and let the compiler figure out whether to gen…
4y ago·view thread
comment
If my understanding is correct, Agda and Coq disallow general recursion, so all programs terminate by construction, but Idris relaxes this, in a desire to be more pragmatic at the cost of not as clean…
4y ago·view thread
comment
Can I pick your brain on MLIR? It sounds awesome from what you describe, but I want to know more about whether it's specialized to machine learning types of workloads or whether it's good fo…
4y ago·view thread
comment
Yes, I bet you could do something interesting there, but one of the lessons is that social graphs can become very noisy, especially if people have an incentive to add edges. Don't expect a purely…
4y ago·view thread
comment
While non-BMP Unicode has only become popular somewhat recently due to emoji, it's been part of the relevant official specs for a quarter century. I know you were kinda joking by using scare quot…
4y ago·view thread
comment
Very interesting, thanks. I'll add that to my collection of alternative languages targeting GPU compute.
4y ago·view thread
comment
Speaking of people who have written C++ compilers, what do you think of Circle? Have you given any thought to targeting GPU shaders from D? I think "C-like low level control but with strong compi…
4y ago·view thread
comment
I vouched for your comment but suffice it to say it doesn't match my experience. Being on the right team and having the right project makes a lot of difference. Way too many meetings is definitel…
4y ago·view thread
comment
A Zach-like with music synthesis as the core mechanic. I still think it's a good idea, but I don't really know how to write fun games (I think you have to write one or two to get enough expe…
4y ago·view thread
comment
I thought about starting a company, but that's not where my energy is, it's doing the science. Everything I do is permissively licensed open source (though if I had a chance to work on aweso…
4y ago·view thread
comment
That's not too different than what I did. I left Google fall 2018, at the time thinking I'd write a video game. That morphed into doing research on 2D rendering, because building the infrast…
4y ago·view thread
comment
In my opinion, the rope is easily superior to these other types, but it also depends on whether your language supports abstractions well. The problem with an "array of paragraphs" is that it…
4y ago·view thread
comment
Interesting! Was there anything that you think came out significantly better than if you had written it in, say, C or Rust?
4y ago·view thread
comment
I started something along those lines: https://levien.com/tmp/tractatus.html
4y ago·view thread
comment
Pretty sure it's this paper: https://ieeexplore.ieee.org/document/1164317 That is Griffin-Lim, which matches the second mention but not the first. It's a fairly well kn…
4y ago·view thread
comment
Android has a sophisticated algorithm for line breaking, including hyphenation. It's similar to that of InDesign (both were strongly inspired by the Knuth-Plass algorithm used by TeX), but tuned …
4y ago·view thread
comment
And of course there is at least one other language by that name[1], though very much a toy and designed by someone who didn't really know what they were doing. [1]: https://dercuano.gi…
4y ago·view thread
comment
I was curious. play.rust-lang.org here. Figures. "n" on the other hand, exactly where you'd expect.
4y ago·view thread
comment
I agree with you that dynamically instantiating shader permutations is bad news. That said, I think the author is probably onto something regarding linking and closures. The existing "binding mod…
4y ago·view thread
comment
I don't really agree. I think it's completely valid to explore a GPU architecture in which rasterization is done in software, with a perhaps a bit of support in the ISA. That's what the…
4y ago·view thread
comment
This is a research project from Georgia Tech. There's a homepage at [0] and a paper at [1]. It is specialized to run OpenCL, but with a bit of support for the graphics pipeline, mostly a texture …
4y ago·view thread
comment
The specific thing I've found least documented, yet most important for the distinctive percussive attacks of the DX7, is a random variation of the pitch envelope for the first few milliseconds of…
4y ago·view thread
comment
I believe you will find two main sources of differences in tone between the various DX7 emulators. One is that there are fairly major differences between the original DX7 and the DX7 II (I used the la…
4y ago·view thread
comment
The Open CL 1.2 barrier() function is threadgroup scope, same as threadgroup_barrier on Metal. OpenCL 2.0 introduced a proper barrier function (work_group_barrier), which takes a memory scope paramete…
4y ago·view thread
comment
Thanks very much for this detailed information, it's very helpful. I've filed https://github.com/gfx-rs/metal-rs/issues/222 to track it in the Rust ecosystem …
4y ago·view thread
comment
This is done in rust-gpu[1] by the `spirv(workgroup)` attribute on the kernel function signature. [1]: https://github.com/EmbarkStudios/rust-gpu/blob/46c9ea0c9c7b7... …
4y ago·view thread
comment
While this might work on your specific device, it is an undocumented interface and there is no guarantee at all for future compatibility. If you do get a definitive answer from Apple you can share, pl…
4y ago·view thread
comment
Specifically, I suspect one main reason they've kept it as long as they have is for WebGL support in Safari. Now they are investing in Angle[1], so going forward I expect that to be the primary p…
4y ago·view thread
comment
By "swift-style refcounting" I mean the object is reliably deallocated exactly when the last release is called. Following up on the response to comex, I would say I would get these semantics…
4y ago·view thread