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.
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…
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…
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…
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…
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…
comment
Very interesting, thanks. I'll add that to my collection of alternative languages targeting GPU compute.
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…
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…
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…
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…
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…
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…
comment
Interesting! Was there anything that you think came out significantly better than if you had written it in, say, C or Rust?
comment
I started something along those lines: https://levien.com/tmp/tractatus.html
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…
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 …
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…
comment
I was curious. play.rust-lang.org here. Figures. "n" on the other hand, exactly where you'd expect.
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…
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…
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 …
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…
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…
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…
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 …
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... …
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…
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…
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…