HNHacker News
TopNewBestAskShowJobs

rezmason

1,337 karma · joined October 16, 2018

People read this? That's cool.

I make code things that draw things. I try hard not to build on top of quicksand. Not a big fan of jerks.

https://www.rezmason.net

submissionscomments
rezmason··on SDF vs. MSDF vs. Slug: GPU Text Rendering
We mostly agree! I should elaborate.

I'd say what you and the others did was research, not implementation. Your results were solutions to the same problem, not variations of the same recipe. What you did is important but separate from what's concerned me.

A recipe of Chlumský's— the msdfgen utility— is widely used, but only has one producer. I'm just saying that that's a liability. Like, imagine if HarfBuzz was the only text shaper, and was maintained by one person.

rezmason··on SDF vs. MSDF vs. Slug: GPU Text Rendering
Slug looks impressive!

The project I'm most known for is basically an MSDF shader with a bloom pass. It serves my needs 100%, though if I expand to support arbitrary text, I may reach for Slug.

The one issue with MSDF I want to raise is, it seems everybody uses the same msdfgen texture creation program from Viktor Chlumský's master's thesis 11 years ago. I wish there were other implementations. Who ever heard of a graphics technique that was only ever programmed once, and then used everywhere without substantial iteration? We need to de-XKCD-2347 MSDFs for everyone's sake, including and especially Chlumský.

rezmason··on Apple iPod Engraver (2019)
I think it's worth noting that 2004-2006 was a time period where a Flash applet could have done this on the client. This was also a time when Flash content was supported by Apple QuickTime, so it's interesting that they didn't make use of it here.

I wonder if a SWF was ever hosted on the apple.com domain.

rezmason··on Learn OpenGL, extensive tutorial resource for learning Modern OpenGL
In light of WebGPU, I respectfully disagree. Because it has us building shader modules, buffers, and pipelines up-front with descriptors, the task of figuring out why something isn't working is often front-loaded. Pair that with its eloquent warnings (in comparison to, like, gl.getProgramParameter(shader, gl. COMPILE_STATUS) ) and the ability to label all your stuff to see it referred to by name in aforementioned warnings text... I'm rambling, but, there's just a lot of helpful stuff in WebGPU that I don't think OpenGL has, that stands to really help newcomers along
rezmason··on Multi-Primary Color Display Emerges as Next-Gen Color Reproduction Technology
I don't have an answer, I'm just wondering out loud.

Cone cell activation is complicated. Displays with three well chosen primaries are economical and effective, but they aren't intended to produce every perceivable color. And our chromaticity diagrams, that pointy splotch that's often used to compare display gamuts, is based on a "standard observer" that is a simplified model for human perception.

An ideal pixel would be able to emit any kind of electromagnetic radiation of any intensity, kind of fun to think about but unrealistic and impractical.

What additional primaries mathematically do is expand a gamut from a triangle to a convex polygon. While ten or a hundred primaries would be bonkers, I bet we could fit a quadrilateral or a pentagon to the perceivable gamut in ways that'd see some gains.

rezmason··on UHF X11: X11 Built for VisionOS and Apple Vision Pro
Very creative!

Does anyone else besides me suspect X11 will outlive visionOS?

rezmason··on Perlisisms (1982)
These are fun to say out loud in the voice of the Kai Lentit's Perl programmer

https://youtu.be/0jK0ytvjv-E?t=43

https://youtu.be/xE9W9Ghe4Jk?t=238

rezmason··on Making Graphics Like it's 1993
A great writeup of excellent work!

The flight simulator / magic carpet easter egg in Microsoft Excel 97 used that same shaded-colormap palette trick, plus some dithering:

https://rezmason.github.io/excel_97_egg https://rezmason.github.io/excel_97_egg/about.html

I'm impressed by your sprite pipeline and gibs animations. Your attention to detail and navigation of constraints have really paid off, I can't wait to play this sometime

rezmason··on California moves to exempt Linux from its age-verification law after backlash
> If Meta is liable for when someone underage uses their service, then Meta is going to require proof of age—

Let's be clear what this means, "Meta is going to require" something. They'll require it to continue to do something, which is namely to be a bad company, running bad services, without pivoting to something else.

Of course, no one requires Meta to continue to be Meta. We'd protect people by requiring companies like Meta to request PII outright, because then the user is explicitly prompted to decide whether using Meta's services is worth surrendering their privacy. And if consumer sentiment and market forces mean anything anymore, that will incentivize Meta to replace their bad services with better ones, ones that don't cause them tricky liability issues.

In other words, forcing operating systems to demand PII from users from the get-go, regardless of the quality of that signal, and to broadcast that to any website, is not, as you put it, "the way to do it with the least impact on privacy and anonymity possible", etc etc. The "way to do it" is to phase out this rotten era of surveillance apparatus disguised as social media companies.

Sorry for being irate, it just feels like so many people these days arrive too quickly (for my taste) at conclusions without testing certain popular assumptions about the inevitability of tech oligarchy.

rezmason··on Creating a Color Palette from an Image
Y'all have got to check out the color palette widget wizardry of David Aerne. Seriously, the guy's prolific. The first link is similar to OP's, an image color palette extractor:

https://okpalette.color.pizza

https://meodai.github.io/RYBitten

https://rybitten.space

rezmason··on Colorado Adds Open-Source Exemption to Age-Verification Bill
Ah! Sorry, I misunderstood, I thought the above comment was saying Meta was behind the open source exemption
rezmason··on Colorado Adds Open-Source Exemption to Age-Verification Bill
[citation requested]
rezmason··on GitHub Monaspace Case Study
Were fonts always able to do "texture healing"? Has no one tried this before?
rezmason··on Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller
In case anyone's wondering, this website's syntax highlighting color scheme is called "gruvbox", which I quite like but took an embarrassingly long time to track down

https://github.com/morhetz/gruvbox

rezmason··on Welcome (back) to Macintosh
Since Apple turns 50 this year, I went looking for a graphic that symbolizes what I always liked about Apple and the Mac, without implying I condone anything I dislike about them.

Here's my vector reproduction of the logo for MacAddict's and Guy Kawasaki's "EvangeList", circa 1997 :

https://rezmason.net/evangelist.svg

rezmason··on UEFI Bindings for JavaScript
It begins!
rezmason··on Comic-Con Bans AI Art After Artist Pushback
We also typically value things that are not tied to productivity/output, like product quality/reliability, security, and our own agency.

I want to be free to read, write, run, and share code, now and in the future. Relying on centralized services to do it for me (by extracting knowledge from countless other people) is certainly not a resilient strategy.

rezmason··on The eight ways that all the elements in the Universe are made (2021)
This article's from 2021. Does anyone know if there are elements (no pun intended) of this classification of element origins that's impacted by those JWST observations of complex early galaxies?
rezmason··on Spherical Snake
Nicely done!

Related projects:

https://wakaba.c3.cx/s/games/swear

https://milksnake.c3.cx

rezmason··on Noclip.website – A digital museum of video game levels
I contributed one earlier this year! The community's a great bunch and I learned a lot.

Always remember, folks: the best feature request is a pull request ;)

rezmason··on How fast can browsers process base64 data?
Sorry, I was cracking a joke about the browser in a shader.

The GLSL I originally posted is from the "cursed mode" of my side project, and I use it to produce a data URI of every frame, 15 times per second, as a twisted homage to old hardware. (No, I didn't use AI :P )

https://github.com/Rezmason/excel_97_egg

That said, is `pow(vec4(2),-vec4(2,4,6,0))` really so bad? I figured it'd be replaced with `vec4(0.25, 0.0625, 0.015625, 1.0)`.

rezmason··on How fast can browsers process base64 data?
Don't make me upload my web-browser-in-a-GLSL-shader snippet
rezmason··on How fast can browsers process base64 data?
base64 is embarrassingly parallel. So just pipe it to the GPU:

  precision highp float;
  uniform vec2 size;
  uniform sampler2D src,tab;
  void main(){
    vec4 a=(gl_FragCoord-.5)*3.,i=vec4(0,1,2,0)+a.y*size.x+a.x,y=floor(i/size.x),x=i-y*size.x;
    #define s(n)texture2D(src,vec2(x[n],y[n])/size)[0]
    #define e(n)texture2D(tab,vec2(a[n],0))[0]
    a=vec4(s(0),s(1),s(2),0)*255.*pow(vec4(2),-vec4(2,4,6,0)),a=fract(a).wxyz+floor(a)/64.,gl_FragColor=vec4(e(0),e(1),e(2),e(3));
  }
rezmason··on Show HN: Boing
There goes my evening.
rezmason··on You can see a working Quantum Computer in IBM's London office
Just as long as we don't observe it reeeeally closely, I imagine.
rezmason··on A visualization of the RGB space covered by named colors
Bravo! I love color and color spaces.

I've been researching the way classic Macs quantize colors to limited palettes:

https://rezmason.net/retrospectrum/color-cube

This cube is the "inverse table" used to map colors to a palette. The animated regions are tints and shades of pure red, green, and blue. Ideally, this cube would be a voronoi diagram, but that would be prohibitively expensive for Macs of the late eighties. Instead, they mapped the palette colors to indices into the table, and expanded the regions assigned to those colors via a simultaneous flood fill, like if you clicked the Paint Bucket tool with multiple colors in multiple places at the same time. Except in 3D.

rezmason··on Dithering – Part 1
I can appreciate the passion and consideration that went into this presentation of the subject!
rezmason··on OpenGL: Mesh shaders in the current year
hundredrabbits' game Verreciel uses a reimplementation of webgl-lines, to pretty good effect, if I may say so:

https://github.com/mattdesl/webgl-lines

https://hundredrabbits.itch.io/verreciel

PS— I still play Retro, and dream of resuscitating it :)

rezmason··on Meta Ray-Ban Display
I think of bone conducting headphones as the most realistic foundation for augmented reality on the market. Hearing things without plugging your ears up, weighing you down or taking you out of your surroundings is underrated and underutilized. To match the weight of an Oculus Quest 3 on my head, I'd have to wear seventeen pairs of Shockz OpenMove. Compare the dread of a video ad over your eyes to the dread of an audio ad in your ears.

We really should have a broader conversation about the practical applications of this stuff.

rezmason··on Liquid Glass in the Browser: Refraction with CSS and SVG
I'm not especially familiar with this, but I believe making the SVG element larger can increase its filter effects' resolution, and then using CSS transforms to scale the element's parent will return it to its original size, but with a higher resolution result. From there, additional changes to the filter effect (to incorporate a subtle blur for instance) may help it over the finish line.

Regardless, this is a great writeup for changes I wish to never see in ordinary UI.

Page 1 of 9Next →