Live data from Hacker News

Hiding Images in Plain Sight: The Physics of Magic Windows

mattferraro.dev

21–26 of 26 posts

Re: Hiding Images in Plain Sight: The Physics of Magic Windows

#21
post #17

I've thought about it for an hour now, but I don't understand how the given algorithm works. I understand Step 1, growing and shrinking the cells such that the area of the cell on the window is proportional to the brightness of the corresponding cell on the image plane. Intuitively this feels like the cells on the window represent the total light budget, and growing a cell means taking a larger proportion of the inco…

Yeah I think that part is a bit iffy, and if you look at the resulting image it does seem to have some fringes around the outside of the cat, indicating that it's showing something related to the curvature of the heightmap, rather than the intended image. It's probably a good enough approximation to at least generate a recognizeable image. Especially if you use a point source because then each 'window' will reflect a…

yep I think you're exactly right, as evidenced by the fringes.

Re: Hiding Images in Plain Sight: The Physics of Magic Windows

#22

Meanwhile I spent all day debugging a mess of React code, ultimately getting nowhere. Life choices questioning intensifies.

Author here. At my day job I spend lots of hours debugging messy React code! The key is to have side projects too :)

Re: Hiding Images in Plain Sight: The Physics of Magic Windows

#23
post #13

I also got quite interested some times ago ! A nice paper published about this magic : https://infoscience.epfl.ch/record/201509/files/caustics.pdf

yep that paper is extremely impressive! I would love to implement that approach as well, but it is much more computationally expensive. In the Q&A after a talk from that paper's author, he mentions that it takes about 6 hours for the algorithm to run. The approach I took, modeled off of Yue et al, takes about 30 seconds. The trade-off is that the Schwartzburg paper is capable of much more general purpose remapping. It does not require continuity, which is why that paper results in ray folding which you can see as creasing in the lens.

Re: Hiding Images in Plain Sight: The Physics of Magic Windows

#24

Meanwhile I spent all day debugging a mess of React code, ultimately getting nowhere. Life choices questioning intensifies.

Author here. At my day job I spend lots of hours debugging messy React code! The key is to have side projects too :)

You actually made me feel a lot better about this.

Re: Hiding Images in Plain Sight: The Physics of Magic Windows

#25
post #17

I've thought about it for an hour now, but I don't understand how the given algorithm works. I understand Step 1, growing and shrinking the cells such that the area of the cell on the window is proportional to the brightness of the corresponding cell on the image plane. Intuitively this feels like the cells on the window represent the total light budget, and growing a cell means taking a larger proportion of the inco…

Author here. That's a fantastic question! I think you're right that a better solution would include adding curvature to the individual "pixels" in the lens mesh. Unfortunately I don't know how to manufacture anything with microstructure that small! The microlenses would need to be of order .2mm by .2mm square and have curvature that is very slight, because the image plane pixel is about 20 cm away. Perhaps this could…

I don't think you really need to carve individual pixels. If you've got the logic worked out to ensure the light falling at (x,y) ends up at (u,v) then the part you're missing (assuming we're dealing with sunlight for now) is a function f(x,y) = (u,v) that transforms a constant density into the density corresponding to the image you desire.

Using the change of variables formula this basically means that we want h(f^(-1)(x,y)) |det Df| to be constant. Which is quite easy in 1D (it's just the inverse cumulative density function), but significantly trickier in 2D.

In 2D the problems seems to be underdetermined. One solution would be to first solve the horizontal problem for each row and then solve the vertical part for the total densities of each row. Or the other way around. There might be a way to make this optimal in some sense, but I'm not quite sure what to optimize for.

Post reply on HN