HN user

jjcm

10,843 karma

Jacob Miller

Working on diffui.ai - diffusion for UI design.

Formerly Figma, Atlassian, and Microsoft.

AMA about design tokens, webcomponents, and design systems!

+1 808 366 1708 j@jjcm.org

Posts25
Comments1,445
View on HN
diffui.ai 1d ago

Show HN: I left Figma to build a diffusion-based UI design tool

jjcm
20pts7
typeflag.com 13d ago

Show HN: Typeflag. Can you guess which Country's design system a font belongs to

jjcm
3pts0
www.nvidia.com 4mo ago

Nvidia DGX Station

jjcm
6pts3
non.io 5mo ago

Regulation Is a Service Problem

jjcm
6pts0
non.io 6mo ago

The Year of the LLM Desktop

jjcm
3pts0
github.com 1y ago

Show HN: LLMpeg

jjcm
169pts80
html.non.io 1y ago

"Do you know who I am" calculator

jjcm
2pts1
figshare.com 2y ago

Artificially Selecting for Intelligence in Dogs to Produce Human-Level IQ

jjcm
5pts3
blog.adobe.com 2y ago

Adobe Launches Photoshop on the Web

jjcm
1pts1
non.io 3y ago

Show HN: Non.io, a Reddit-like platform Ive been working on for the last 4 years

jjcm
1943pts590
non.io 3y ago

Reddit has platform-user misalignment

jjcm
7pts1
uploadvr.com 4y ago

Meta’s Prototype Photoreal Avatars Can Now Be Generated with an iPhone

jjcm
2pts0
capacitor.non.io 6y ago

Show HN: CapacitorJS – a webcomponent based client side router

jjcm
9pts1
jjcm.org 12y ago

Redesigning Photoshop's font panel

jjcm
2pts1
jjcm.org 12y ago

Mac Pros, Ara, and Modularity

jjcm
179pts112
jjcm.org 13y ago

Show HN: I did a surreal photoshoot this weekend. Here was the process

jjcm
12pts1
news.ycombinator.com 13y ago

Reminder: Google io registration opens tomorrow at 7am PST

jjcm
1pts0
news.ycombinator.com 14y ago

I'm being interviewed on Dianne Sawyer's show tonight. What should I mention?

jjcm
19pts9
sopablackout.org 14y ago

We made a JS utility for January 18th's SOPA blackout

jjcm
69pts27
news.ycombinator.com 14y ago

Is there a site that will alert me when flights are a certain price?

jjcm
9pts3
www.google.com 15y ago

Matt Cutts taking requests on video answers about Google Search

jjcm
1pts0
money.cnn.com 15y ago

Google marketing head Wael Ghonim apprehended in Egypt

jjcm
2pts1
gmailblog.blogspot.com 15y ago

Desktop notifications in for gmail in chrome/webkit

jjcm
23pts9
englishhard.com 15y ago

Real world analysis of google's webp format versus jpg

jjcm
69pts25
www.cmsimike.com 15y ago

Don't judge an Integer by its wrapper.

jjcm
5pts3

Exactly right. You design with the diffusion model, then hand those designs off to an agent to implement.

It's a lot like having an architect create plans for you before handing it off to a builder. In my (obv biased) experience, you end up getting better/more creative results with this approach. You're using the best model for the job at each specific task, ie a diffusion model as the designer, and a LLM as the engineer.

Thank you! That effect is easier than you'd think. Normal maps/depth maps are actually fairly easy to generate via diffusion models. Once I had the designs for the tarot site in diffui, I just copied the build plan, pasted it into claude, and asked it to "generate normal/depth/roughness maps for each of the card designs and dynamically light and displace them based on the mouse position."

The build plan has tooling built in to generate these. Under the hood the model I'm routing to is Fal.ai's Patina model, which does a fantastic job at creating maps.

File is here btw if you want to explore: https://diffui.ai/app/canvas/be49d1a3-df57-4c61-9305-4aef472...

The voice activity detection alone here is compelling - very useful for doing things like highlighting a speaker who's transmitting in realtime. At that rate the impact on perf will be so minimal that you could easily run it in the browser across devices.

taking that to a design system is a great way to make something more personal and original

Indeed, that's why the "brands" feature exists. Once you have 5 screens on canvas you like, select all of them, right click and select "Create brand". That will extract and create an internal representation of a design system so that all future screens are in that look/feel/style.

I ran Design Systems for 5 years over at Figma - this part is very important to me.

They've unfortunately been radio silent since their release, and aren't active on socials at all. I've tried to contact them for updates / api usage, but haven't heard anything back.

Decoy Font 6 days ago

It's been really interesting seeing how LLMs perceive things differently than humans. I'm working on image->html conversion pipelines right now, and there are glaring issues LLMs run into that are obvious for humans. Any subtle gradients get lost, 75 degree angles get converted to 90 degree angles, etc.

This tracks towards what you're seeing with this font - the high frequency details get picked up, but the low frequency ones dont.

I’d recommend a different approach if you’re looking for unique, non-LLM looking styles. Consider trying diffusion as a starting point, then feeding that into an LLM to build.

Ie here are some results:

https://html.non.io/tarot

https://html.non.io/hydroponics

https://html.non.io/solara

All of these started with diffusion renders as a starting point.

LLMs have intrinsic problems when it comes to design. They write code to represent design, but are trained to write consistent code. Consistent code is great if you’re writing a backend function that handles financial, but for design you end up with similar looks. You can use LLMs to police themselves, but it’s still like using backend engineers to review other backend engineers’ designs.

I left Figma to go build a UI design tool based off of diffusion because of this issue. I have a full walkthrough of how I build that tarot page here: https://x.com/pwnies/status/2076755344471289898?s=46&t=bwJTI...

I'm not sure I fully agree with this being a major vuln. There's a lot of up front scary text which was raising a lot of red flags until it actually discussed the "what".

An actor has to place a malicious .exe in the user's code folder, named git.exe, for this to take place.

I see this akin to something like saying "replacing their .bashrc with an alias that says `ls` instead executes `/tmp/mega-big-virus.sh` is a vuln".

Yes it's a vector, but if they've placed something in your filesystem like that already, you've already been compromised.

two other unneccessary details:

1. that 15m one was the most fun I've ever had on a wave, ever. Think of it like going down a ski slope in a canoe, except the ski slope moves with you for miles.

2. we had one of the motorized lead boats sink that year due to them. Interestingly, you're more safe in the canoes on them than you are a standard boat.

Quoting this comment: https://news.ycombinator.com/item?id=48875676

Don't think of these waves like the ones you encounter at shore. Open ocean waves are moving mountains.

It isn't this: /(

It's this:

        .,-~^^~-,.    
  ___.-/          \-.__

The canoes are outrigger canoes specifically designed for open ocean wave surfing. They're made to ride these mountains. There are air bladders in the front and the back, and the canoes are easily recoverable when (not if) you flip.

This vid shows off the canoes on a small ~4' wave: https://youtu.be/deIpUyBp_6Y?t=251, but the mechanics are the same.

One fun thing you get to do in long distance outrigger canoe races in hawaii is crew changes.

Generally, outrigger races have 6 people in the boat and a 9 person team. An escort boat will hold your reserve people, and then drop them in front of the canoe when you need to swap people out.

The problem is that you need to drop people around 200m in front of the canoe so the canoe can have enough time to prep for the crew change, but with that distance, the wave height can obscure the crew from the person steering.

The solution? If you're the one being dropped, you're expected to splash violently. Create as much splash as possible so the canoe can see you, even behind a wave.

The fun part is what gives signal to the canoe is the same thing that gives signal to sharks. Our coach used to say the adrenaline helps us in the race.

This is no joke. I've done the crossing from Moloka‘i to Oahu (~45 miles) in a canoe several times, and those open ocean waves can get very nasty (largest I've dealt with were around 15m tall). I can't imagine the mental endurance required here, let alone the physical. My longest crossing took 9 hours, and I was completely drained by the time I touched shore. 44 days is absolutely insane.

Such a huge accomplishment.

Not quite. These cost-per-task benchmarks report the cost of the task after the model gives its initial answer. The total cost is irrelevant, and isn't factored into the model's decisions - a run of the full benchmark for something like Fable might cost $10k.

What I'm looking for is the inverse. I want to give the model a budget of $100, and see how much it can accomplish with that $100. For smaller models, this means they can do more than just choose thinking amount, they can do something like a /loop to keep iterating on a problem until they get it right.

Can something like Deepseek V4 Flash get more answers correct than Fable, when given equal budgets?

Think of it as answering this question: How much intelligence can you get out of a model given a budget of $100? A cost-per-task dash correlates, but it doesn't give you an answer to that question.

I want a new bench - given $100 of api spend, how much can a model accomplish for a suite of benchmark tests?

Give us something that measures a combination of efficiency and intelligence.

I think this would allow for some interesting tactics for smaller models - eg they could do things like computer use to test their results and grind on problems for longer to verify the outputs, whereas larger models may not have budget to self-test.

Grok 4.5 14 days ago

Depends on the domain imo. I work on a design tool - I don't think their political narrative will affect my work.

Resetting Xbox 16 days ago

A non-trivial amount of their ARR is still from Valve-made games. Counterstrike still nets a bit over 1b per year from just case unboxings, and Dota is in the hundreds of millions. I wouldn't call 8-10% a margin of error.

Resetting Xbox 16 days ago

What's fascinating to me are the Valve comparables here.

<500 employees vs 18k at Xbox

17B ARR vs 20B ARR

At the end of the day there are two strong differences here. Valve has always been lead by people who were game devs, and have always conveyed a message that the gaming experience matters most. Xbox was led by Phil Spencer, who at least was known as being an avid gamer, but in his tenure pushed for things like xbox game pass to drive continual revenue and windows integrations that affected performance of games. Now it's being led by an industry outsider.

It boils down to trust in the end, and willingness to place profit over brand. If you look at the responses to this in r/xbox or other communities, it's overwhelmingly a stance of zero surprise. Xbox has always placed the business first, and this is the natural end of that mission - you get a bloated org with a platform that people don't end up trusting.

I do think resetting is the correct thing to do; there's no reason for Xbox to have 10k+ employees. Still it's another black mark against the brand. Also look at the framing of this message - it's about how their structure has affected the business. In this entire 47 sentence post, there is a single sentence that talks about the affect on the players:

That complexity has slowed decisions, blurred accountability, and made it harder to deliver for players.

It says a lot when the players are the secondary consideration.

If you want the core loop of Factorio but with a fresh spin, I highly recommend Dyson Sphere Program. It's my personal fav of the factory genre for the pure scale of it. As a tip, there's full multiplayer support from the mod community that works great.

Neat. I tested it and here were my results:

ffmpeg conversion: 1,515 bytes, 0.05s

zgif conversion: 1,479 bytes, 90.1s

I used cursor to port it to rust as well, and it got the conversion time down to 20s. Still likely not worth it as even with the rust port it's a 400x increase in processing time (that scales exponentially) for a ~2% decrease in size.