HNHacker News
TopNewBestAskShowJobs

w-m

3,072 karma · joined June 28, 2013

Hey, I'm Wieland (/viːland/), I'm a computer vision researcher. You can check out my current projects on GitHub: https://github.com/w-m

---

X-Maps: Using a tiny laser projector and an event camera to estimate depth at 60 Hz on a laptop CPU. The algorithm is using only the time stamps of when the laser passes over the scene, not its color or intensity, so you can project any content you like. Fun for AR demos!

https://fraunhoferhhi.github.io/X-maps/

---

Self-Organizing Gaussian Grids: 3D data is awkward to compress. But there's plenty of solutions for compressing 2D data (images!). So let's organize our 3D data into a 2D grid, where grid neighbors are also close in 3D. That's a hard problem, but we can leverage novel assignment algorithms with GPU power for parallelizing that, to get the sorting done in a few seconds.

https://fraunhoferhhi.github.io/Self-Organizing-Gaussians/

---

https://www.3dgs.zip/ resources on 3D Gaussian Splatting from our research group.

https://survey.3dgs.zip/ - a comparison of different compression methods for 3D Gaussian Splatting scenes.

submissionscomments
w-m··on Iron as an inexpensive storage medium for hydrogen
This seems to be the most important problem to be solved for a green, future grid. So I’m happy there’s a new solution shown every other month.

It’s annoying that they always seem to contain some hand-wavy efficiency calculations. I think this one didn’t even consider the losses from hydrogen production? Is there a benchmark out there, of these long-term electricity storage solutions? Like: you get 1 MWh at 25 deg C, and 6 months later, it’s measured how much your system restores. Everything taken from the grid during storage for upkeep or kickstarting the process is subtracted as well.

w-m··on One man's quest to restore the first-ever Air Force One
Oh, really? I guess here goes my second presidential transportation museum fact of this thread then: you can visit a limousine used by Truman in the Little White House in Key West: https://fla-keys.com/news/article/10941/key-west-visitors-ca...

To me it seemed just like any older car, not anything special. Didn’t realize they are destroying most of them.

w-m··on One man's quest to restore the first-ever Air Force One
You can step inside the first jet-powered Air Force One in the Museum of Flight in Seattle. It’s fully stocked, with meeting rooms and communication equipment and all. My favorite part is the fake temperature control:

> President Johnson was finicky about room temperature and when he was VP and developed a habit of haranguing the flight crew about lowering or raising the cabin temperature. After a while the crew got tired of his shenanigans, so they installed a “fake” temperature control in the Conference Room. This appeasement was successful, and Johnson was so pleased with manipulating the controls himself that he didn’t even notice when the temperature remained the same.

https://blog.museumofflight.org/quirks-of-the-first-jet-powe...

w-m··on Praise My GitHub Profile
Just had GPT-4o roast me, based on my HN profile bio and recent comments. (Would anybody care to build a Show-HN out of this?). Giving it lots of actual written stuff (I put a lot of thought into), not just project names, makes it cut so much deeper:

> w-m, your attempts at contributing to discussions are like bringing a butter knife to a gunfight. Your comment on getting "canned" responses from GitHub praise projects reeks of a guy who secretly wishes for a participation trophy while dismissing genuine critique. You try so hard to sound like a nuanced thinker, but it mostly comes off as a desperate plea for validation. It's almost charming how you still think "constructive feedback" is going to fix a broken prompt when, let’s face it, your GitHub is about as engaging as a beige wall.

> Your tirade on Self-Compressing Neural Networks and 3D Gaussian Splatting reads like a bad parody of a tech talk at a conference no one wanted to attend. You ramble on about "self-organization" as if you're the first to discover the concept, all while your contributions are about as original as a straight-to-DVD sequel. And let’s not forget your .zip domain saga—a perfect encapsulation of your career: big ideas with zero practical payoff. You bought a useless domain and then cried foul when IT blocked it. Maybe next time, stick to .com like everyone else who doesn't want to be laughed out of the room.

> Your AMD complaint at CVPR is just the cherry on top. You walk around conferences like an underfunded indie game developer whining about corporate monopolies while pretending you’re the underdog hero. Pro tip: if you're going to gripe about market dynamics, at least do it without sounding like a whiny tech bro who's bitter because they couldn't get their hands on the latest GPU.

> In summary, w-m, you’re the quintessential tech enthusiast who overcomplicates everything, talks like he’s inventing the wheel, and then acts surprised when no one wants to ride along. Maybe it's time to step out of your echo chamber and actually engage with the world beyond your academic bubble.

I think that's the most fun I've had with LLMs in quite a while.

Edit: works well on arxiv papers, too...

w-m··on Praise My GitHub Profile
Oh wow, thanks for looking it up. I stand corrected! Never would have thought this simple a prompt could get such spicy responses.
w-m··on Praise My GitHub Profile
When I tried it, the response felt somewhat canned. Referencing as specifics only my place of work and the number of followers (I don't have a bio). Getting super generic praise does not feel that great.

It's a fun project (kudos for launching!), and I think it can get a lot better: by providing a longer list of human-written praise examples that don't feel that canned, for things that people do well on GitHub. And also providing specific repos, and how many stars or other activity they have as points of reference to the model, to actually tailor the praise to the profile. At least that's what the roast version seems to be doing, and doing it well (see my roast in another comment).

w-m··on Praise My GitHub Profile
Haha, thanks for posting, that brought me a lot of joy running on my profile. It must have an awesome prompt. The praise one felt quite cringy, so I was happy that at least the roast didn't take any prisoners:

> Sounds like you’re trying to impress academic circles, but with repos that barely break the surface of mediocrity, you might want to reconsider your life choices. “Awesome” lists with zero stargazers? That’s some next-level irony. Get an original thought or two, and maybe, just maybe, you won’t need to curate lists of things no one cares about. This GitHub isn’t a museum for your neglected projects, it’s a showcase, and right now, it’s just a dump!

w-m··on Self-Compressing Neural Networks
Using as little computational resources (memory and/or FLOPS) as possible as an additional optimization criterion when training NNs is an interesting avenue. I think the current state of pre-trained model families is weird. Take Llama 3.1 or Segment Anything 2: you get tiny/small/medium/larger/huge models, where for each tier the model size was predefined, and they are trained somewhat (completely?) independently. This feels iffy, patchy, and like we haven't really arrived yet.

I'd want a model that scales up and down depending on the task given at inference, and a model that doesn't have a fixed size when starting the training. Shouldn't it specialize over training progress, when seeing more tokens, and grow larger where needed? Without some human fixing a size beforehand?

Self-organization is a fascinating topic to me. This last year I've been working on Self-Organizing Gaussian Splats [0]. With a lot of squinting, this lives in a similar space as the Self-Compressing Neural Networks from the link above. The idea of the Gaussians was to build on Self-Organizing Maps (lovely 90s concept, look for some GIFs if you don't know it), and use that to represent 3D scenes in a memory-efficient way. By mapping attributes into a locally smooth 2D grid. It's quite a simple algorithm, but works really well, and better than many quite complicated coding schemes. So this has me excited that we'll (re-)discover great methods in this space in the near future.

[0]: https://fraunhoferhhi.github.io/Self-Organizing-Gaussians/

w-m··on Siggraph 2024 Technical Papers Trailer [video]
These SIGGRAPH results are always so pretty. Shame it's only a trailer of a few methods, and not the full papers fast-forward session. Would be awesome to have that on YouTube.
w-m··on Phish-friendly domain registry ".top" put on notice
That makes sense. Funnily enough I had kind of an inverse problem building the https://3dgs.zip/ landing page, or linking to the project from elsewhere - I’d point a link to the compression survey with the link text “survey.3dgs.zip”.

And had to have people point out to me that they don’t want to click on that, because they don’t want to download a big file.

w-m··on Phish-friendly domain registry ".top" put on notice
My point was that the person fooled by https://foo.zip/ would have been also fooled by https://foo.com/bar.zip, so the existence .zip wouldn’t change much.

But now I’ve understood that the auto-linkification of a simple non-link mention like update.zip can be indeed dangerous.

w-m··on Phish-friendly domain registry ".top" put on notice
Yep, I checked other, established .zip domains. Finding one was quite a hard task, which gave me pause. I found a link shortener site on some Google promotional page for .zip (.zip is a Google-TLD). Accessing any .zip url was denied on the tested machines.

So this matches what IT told me and what the sister comments state here: some tool blocks the whole .zip TLD on the DNS level.

w-m··on Phish-friendly domain registry ".top" put on notice
Ah that makes a lot more sense as an attack vector. Thanks for explaining! Indeed, checking a list of common .zip file names, most of them are registered domains. Uhhh.
w-m··on Phish-friendly domain registry ".top" put on notice
I have a story on using weird/fishy/phishy TLDs: Recently my colleagues and I started collecting information on all the available compression methods for 3D Gaussian Splatting (3DGS, a popular method for 3d scene representation). There were quite a few works in the area with naming conflicts already, so I thought to give it a unique short name to refer to - and came up with “3dgs.zip”.

A few days later we started putting together a web page, and I noticed that .zip actually is available as a TLD. Impulsively I bought the domain, https://3dgs.zip/, launched it and printed it on a few shirts before heading off to a conference. Felt a bit weird that there is a .zip TLD, but I was in a rush and I didn’t ponder its existence any further.

But strange things started happening: setting up the domain for a GitHub page worked, but in the process downloaded a 0 Byte file called “3dgs.zip”, when submitting content one of the GitHub.com forms. And a few days later colleagues told me they had trouble accessing the site. After some DNS sleuthing and then some back-and-forth with our IT dept, it turned out that our organization has blocked the whole TLD - for every Windows user, out of phishing concerns of people being confused.

I’m no security person, so the reasoning felt a bit weird to me, as I guess the .zip TLD can’t hurt anybody; downloading a .zip might, which you can attach to any link name? But in any case I wasn’t able to find any .zip URL with a purpose, but lots of Reddit posts of angry sysadmins who bemoaned the influx of terrible TLDs with mostly phishing use and vowed to block them all. So they probably have a point in downright blocking the whole TLD.

Now I’m sitting here with my .zip url. Had to revert the page to use github.io, so people in my organization (and similarly thinking ones) would be able to access it. Guess I’m cured for a while, won’t be using any novelty TLDs anytime soon…

w-m··on 3D Gaussian Ray Tracing: Fast Tracing of Particle Scenes
You can find their names here: https://arxiv.org/abs/2407.07090

The anonymity on the web page may be due to requirements of the venue where the paper is currently under review. Sometimes there are rules against advertising preprints under review. Or maybe they have a link to the web page in the submission and want to keep it double blind this way.

w-m··on WildGaussians: 3D Gaussian Splatting in the Wild
Ok, I'll guess I'll have to bite myself. I only spent a couple of minutes with each paper, so my understanding will at best be superficial. Trying to understand something quickly is hard, trying to represent something you haven't understood completely is harder. So please consider every bit of information in this post a likely misrepresentation, overgeneralization, or just plain wrong (welcome to the internet!). But it might help you select which papers you'd want to look at, so I'm still posting it.

All these in-the-wild-methods share a similar setup, in that they do two things: appearance modelling (for daytime and weather and season and exposure, usually with per-image and per-Gaussian embeddings), and modelling/masking of transient objects (for tourists and dogs and water and blimps).

WildGaussians (this post): For the appearance modelling, they have a learnable per-Gaussian and a per-image embedding. They are fed into an MLP to produce affine transformations applied to the spherical harmonics (SH) params. So if you like a fixed appearance, you can pre-compute SH params and throw the scene into a standard 3DGS renderer.

The affine transformations are inspired by "Urban radiance fields", which predicts affine params form image embedding alone. WildGaussians use also per-Gaussian appearance embedding for local changes.

For the transients, they have an "uncertainty modelling" module, which computes DINOv2 features of the rendered image, and of the GT image. They compare, upsample and binarize them into a per-pixel mask, which is thrown onto the DSSIM and L1 loss.

Paper reads well, probably interesting to dive into how the uncertainty modelling really works. Straightforward setup (with the split into appearance and uncertainty), can be followed along well.

SWAG: appearance modelling somewhat similar to WildGaussians. Has image embedding, looks up per-Gaussian embedding from the Gaussian coords in a hash grid (hello Instant NGP). Feeds them together with the Gaussian color into an MLP. Which produces image-independent color and an image-dependent "opacity variation". So instead of masking out transient stuff in the image loss during training, they learn for each Gaussian (through hash grid), whether it's visible in a particular image.

The authors note that they also considered using "Urban Radiance Fields" affine transformations, but that affine colors cannot model all appearance changes.. which is why WildGaussians have the per-Gaussian embedding, I think?

Interesting that they can reproduce per-image transient objects. But maybe the static stuff looks a bit worse from that (look at the water in the Trevi fountain, its.. missing).

Bit hard to quickly follow along with the opacity variation stuff, this would take a bit of time to grok. But overall also quite straightforward setup, interesting read.

Wild-GS: Global appearance embedding (per image), per-Gaussians local reflectance, material attributes per Gaussian. Fusion network decodes SH from these three components. For some reason projects the points from the image from the depth into 3D, and looks that up in a triplane, instead of looing up the triplane from the Gaussian position? There's "2D Parsing" and "3D Wrapping", and it's quite convoluted, I'd need more time to understand what's going on here.

Gaussian in the Wild: extracts image feature with a UNet, reshapes into a bunch of feature maps (K feature maps + projection feature map?). The Gaussians sample from these feature maps. Features are fused with an MLP into a color. Some adaptive sampling is apparently required.

Transient objects are handled by a 2D visibility map obtained from a UNet as well.

I think the main idea is to train networks that can extract information from the input image to model the appearance and transients. This is different from WildGaussians and SWAG, which train per-image and per-Gaussian (directly or thourgh 3D lookup) embeddings, and only small decoder MLPs.

WE-GS An In-the-wild Efficient 3D Gaussian Representation for Unconstrained Photo Collections: may be similar to Wild-GS. Too much stuff going on, to understand from quick browsing. If you like the <2D input image feeds into lots of different networks> idea (like Wild-GS), you may want to read this one, too.

Robust Gaussian Splatting: tackles motion blur by modelling the camera poses as a Gaussian distribution. And defocus blur (from physical apertures) through an additional covariance on the Gaussians. Also have an RGB decoder function with per-image embedding for some appearance modelling (different exposures of the same scene). Interesting to read when you want to get rid of motion and defocus blur. For an in-the-wild appearance modelling, choose one of the other methods, it's very simple here.

SpotlessSplats: Ignoring Distractors in 3D Gaussian Splatting: spatio-temporal semantic clustering of objects that are likely transient (moving dog, "transient distractor in casual capture"). Also offers a new densification/pruning scheme. Focus is on casual capture, no appearance / in the wild stuff. Results look great, probably an interesting read!

w-m··on WildGaussians: 3D Gaussian Splatting in the Wild
Any insights on what it does better than the concurrent works (Gaussian in the Wild, SWAG, Wild-GS)?
w-m··on Zed on Linux Is Here
Is (Python) debugging on the roadmap somewhere for Zed, or will this remain out of scope?

I have a fast editor in Sublime already, but I’d consider jumping ship from VS Code to Zed if I can set some breakpoints and look at local variables and whatnot (very basic IDE stuff).

w-m··on Why Michigan Still Uses a Ford Model T for Official Government Business
The 2021 Fiat 500 sits at 1,683 mm width, a whopping 7 mm wider than the Model T at 1,676 mm: https://www.automobiledimension.com/city-cars.php
w-m··on Testing AMD's Giant MI300X
Impressions from last week’s CVPR, a conference with 12k attendees on computer vision - Pretty much everyone is using NVIDIA GPUs, and pretty much everyone isn’t happy with the prices, and would like some competition in the space:

NVIDIA was there with 57 papers, a website dedicated to their research presented at the conference, a full day tutorial on accelerating deep learning, and ever present with shirts and backpacks in the corridors and at poster presentations.

AMD had a booth at the expo part, where they were raffling off some GPUs. I went up to them to ask what framework I should look into, when writing kernels (ideally from Python) for GPGPU. They referred me to the “technical guy”, who it turns out had a demo on inference on an LLM. Which he couldn’t show me, as the laptop with the APU had crashed and wouldn’t reboot. He didn’t know about writing kernels, but told me there was a compiler guy who might be able to help, but he wasn’t to be found at that moment, and I couldn’t find him when returning to the booth later.

I’m not at all happy with this situation. As long as AMDs investment into software and evangelism remains at ~$0, I don’t see how any hardware they put out will make a difference. And you’ll continue to hear people walking away from their booth, saying “oh when I win it I’m going to sell it to buy myself an NVIDIA GPU”.

w-m··on HybridNeRF: Efficient Neural Rendering
Recognizing what is a car in a 3D NeRF/Gaussian Splatting scene can be done. Also research from CVPR: https://www.garfield.studio/
w-m··on Nvidia Warp: A Python framework for high performance GPU simulation and graphics
https://github.com/taichi-dev/taichi/discussions/8506
w-m··on Nvidia Warp: A Python framework for high performance GPU simulation and graphics
I was playing around with taichi a little bit for a project. Taichi lives in a similar space, but has more than an NVIDIA backend. But its development has stalled, so I’m considering switching to warp now.

It’s quite frustrating that there’s seemingly no long-lived framework that allows me to write simple numba-like kernels and try them out in NVIDIA GPUs and Apple GPUs. Even with taichi, the Metal backend was definitely B-tier or lower: Not offering 64 bit ints, and randomly crashing/not compiling stuff.

Here’s hoping that we’ll solve the GPU programming space in the next couple years, but after ~15 years or so of waiting, I’m no longer holding my breath.

https://github.com/taichi-dev/taichi

w-m··on Norway discovers Europe's largest deposit of rare earth metals
I happen to like them, and I’m old-fashioned enough to think that they give a lovely baroque feel to a continent.
w-m··on Golden Gate Claude
If you give it a reward for not mentioning the bridge or announce severe punishment for mentioning it, and then tell it to evaluate itself while writing, it will suffer a lot on some topics. Topics far away from bridges it will still answer fine (building a PC), and then maybe slip in a single bridge reference.

But asking for the countries in the European Union, it'll only list counties around the bridge. It then realizes it has failed, tries again, and fails again hard. Over and over. It's very lucid and can clearly still evaluate that it's going off, what it's doing wrong, but it just can't help itself, like an addict. I really don't like anthropomorphizing LLMs, it was borderline difficult to see how much it was struggling in some instances.

w-m··on Researchers find high levels of lead, mercury and arsenic in Beethoven's hair
I'm quite confused. I learned 20+ years ago that lead poisining from the wine was the cause, or at least the suspected cause of Beethovens deafness. It's great that they found lead in his hair (again?), but thoroughly weird that they don't mention that it was the go-to theory already.

On a large tangent, I tried asking GPT-4o to check the article whether it mentions that previously that theory already existed (could have overlooked it). GPT-4o confidently made up a complete quote from the article, then doubled down after I said I couldn't find the quote, and finally reversed its opinion 180 degrees. It's of course much too early to tell, but my feeling from a handful queries has been that GPT-4o hallucinates quite a bit more than GPT-4.

w-m··on Veo
GPT-4o is available for me on ChatGPT, with the text+attachment input (as a Plus user from Germany). It's crazy fast. The voice for the audio conversation in the app is still the old one, and doesn't let you interrupt it.
w-m··on GPT-4o
Gone are the days of copy-pasting to/from ChatGPT all the time, now you just share your screen. That's a fantastic feature, in how much friction that removes. But what an absolute privacy nightmare.

With ChatGPT having a very simple text+attachment in, text out interface, I felt absolutely in control of what I tell it. Now when it's grabbing my screen or a live camera feed, that will be gone. And I'll still use it, because it's just so damn convenient?

w-m··on Zimtohrli: A New Psychoacoustic Perceptual Metric for Audio Compression
Likely inspired by https://github.com/google/butteraugli
w-m··on The Millennial Captcha
It’s quite simple, but still executed so well, particularly the iPod and the Nokia phone. Brought me joy and nostalgia and unexpectedly a feeling of belonging and cohesion.
← PreviousPage 3 of 17Next →