HN user

MattCruikshank

247 karma
Posts1
Comments57
View on HN

I feel like there should be an online museum dedicated to reproducing the graphics in movies, as faithfully as possible.

Especially awesome if film-makers started DONATING their video assets to the museum.

Sure, you could think in terms of 1m^3.

Yes, you're right that composing the best picture for an eye point could (and does) use splats from all over the scene.

But I think if you limit to splats that are (entirely, mostly, partially?) inside the 1m^3 block, you'll do pretty well. And you're absolutely right that reflective surfaces would probably be the first to suffer.

Well, it's worse than that. Because if you make a 1m^3 pond cube, and then I go putting trees around it, a naive rendering would still show YOUR reflections in the pond, rather than rendering from that pond's point of view, etc, like traditional rendering.

One of Gaussian Splats strengths, that it doesn't care... becomes a problem for me.

My dumb idea... do outdoor scans, and then convert the contents into 1m^2 blocks... And then, just dumbly stitch them together.

Kind of like Minecraft... but with user-generated gaussian-splat blocks.

I was daydreaming about, picture if a corporation buys an entire state.

Say, Wyoming or West Virginia. Gemini guesses $180 billion to $250 billion.

With that investment, they'd get to control who lives in the state.

So, then the corporation gets to control who the Governor is. And the two Senators, and the seat in the Congress.

Forgive me if I'm wrong, but doesn't a single Senator have just a tremendous amount of power to block basically any legislation? With pocket vetoes, or silent filibusters?

Granted, actually buying a Senator is probably cheaper by a few orders of magnitude.

I blame the intentionally cheap receiving optics. Researchers have reconstructed a TV signal from a hotel room with closed blinds, by very accurately measuring the ambient light intensity of the room (as shown on the blinds.)

Knowing that, I doubt that someone with even moderate funding would have difficulty receiving a signal from any of the transmitters you mention.

But, in all honesty, if you put a physical cap on the transmitter and receiver, maybe I'm wrong.

But in the other hand, none of the devices I currently own have one of your transmitters, and they all have screens and cameras, so...

Thanks for the dialogue and for sharing your experiences.

Me, in my life, I have a PC that's connected to the internet. I have a phone that's connected to the internet.

I want another device, which I imagine to be a Pi or Esp32 or something with a camera and a touchscreen display, and capacitive charging. After I program it and give it the public/private keypair and the OTP, I imagine physically breaking off a USB port, or sealing one with some hardening resin.

I don't want an entire airgapped computer. Maybe you do, that's fine. For me, I'd love it to be a credit-card sized doodad.

I've wanted to use this for an air-gapped communication device.

I have a device with a camera and a touch-screen that only uses capacitive charging. I type a message. Bytes are encrypted. I hit send. QR codes flash on my screen. I use my PC or my normal phone to receive the encrypted bytes, and transmit them to you. You have the same device. You have your PC or phone flash encrypted QR codes. You use your device to receive, and then decrypt.

I've daydreamed about also buying several different hardware random noise generators. XOR all of their bits together. Save a huge one time pad to each of our devices. And then also use public key crypto on top of it.

I'm not really sure why I want this. But, it's my answer for how to reduce attack surface as much as possible, and have truly secret messages.

That's a bummer.

I'll admit that, at first, I thought this said Michael Keaton. And oddly enough, Michael Keaton's real name is Michael Douglas. So, there's a whole spiral of madness that my brain went off into.

None of these will work properly.

If I'm trying to tour one of the beautiful servers that people have made, yes, it absolutely would work for my use case.

I'm sorry my idea doesn't appeal to you.

Acting like it has no value for anyone means you don't understand my use case, or you don't care about me. It may entirely be my fault that you don't understand my use case, but I think you're being obstinate.

Cheers.

I've been toying with using Jart's Blink, the "tiniest x86-64-linux emulator". If it were hardened against attacks by a smart community, it seems really attractive...

Then I've been toying with using WASM, with a strictly limited API surface... (API stands for what, "Attack, Please, Infiltrators"?)

I'd really love to make a service which can run "untrusted" code... I want this to exist. I want it to feel like the Sandstorm.io marketplace, and to use Tailscale or something like it... and then to make "Facebook but only for friends or friends-of-friends." No public figures. No random people or ads in my feeds. Just friends. And then other similar apps - mail, discord, etc. Don't let it make outbound HTTP connections. Don't let it access local filesystem, other than assets that were bundled with it. Give it a SQLite API... And let it handle inbound HTTP, REST, WebSocket requests... And use gRPC over Tailscale to only talk directly to approved contacts...

Thoughts? How to run untrusted code safely?

I tried using Firecracker and gVisor... But I'm dissatisfied with them. I was trying to make it easy for someone to download and run my service... But Firecracker and gVisor don't at all feel like "libraries that install cleanly." They feel more like, if you're enterprise scale, you can hire someone to make sure Firecracker and gVisor work the way you want... Maybe I'm just not trying hard enough... Maybe using WSL2 on Windows 11 is just asking for trouble. I tried several different ways to run Linux on Windows, and none of them seemed very happy, when I tried to add Firecracker / gVisor.

Yeah, when you describe that, I picture Wave Function Collapse to generate a map schematic... And then a text prompt, and some style photos the designers want it to match.

I want some math Phds to sit down with the Corridor Crew guys and figure out how to make Gaussian Splat reconstruction way better, the way they came up with CorridorKey.

I just wanted to do a quick size comparison...

If I'm reading Chrome right, that's 171 MB, for the website, and the data.

If I'm doing the math right, that's 40 seconds worth of the bandwidth from Netflix, at its highest rate.

I know feelings about AI are mixed. But when AI can dream up gaussian splats in real time, from a prompt, and do refinement as you get closer to things... That's going to be pretty bonkers.

Minecraft worlds aren't static. Will you be billed to download updated chunks too?

There are two hard problems in computer science - caching, naming things, and off-by-one errors.

Yes, I can imagine multiple choices.

1) When you're downloading a chunk, always download the newest version of it.

2) When you're downloading a chunk, download it as it existed at the moment of a snapshot. Heavier burden on the server, to keep multiple snapshots. Perhaps some servers only keep one snapshot. Perhaps some keep one snapshot every 24 hours, but only for 4 days. You only have to keep multiple copies of chunks that actually got modified. And in fact, if a chunk never got modified, you only download a flag that says to let it get generated by the seed.

3) You periodically ask to download chunks, to keep relatively up-to-date. Maybe every hour. Maybe you only stream chunks from the backing server, if you haven't modified them locally. Maybe you choose that locally-modified chunks win. Maybe there's a way in-game to say you want this chunk (and its neighborhood) to update from the backing server. Commands, command-blocks, etc.

Also what happens if you don't put money into your Minecraft account? Can you still play with others?

I'm not proposing to change anything about how Minecraft currently works. I'm proposing adding something new. Whatever ways you currently play with your friends, you can continue to do that.

But yes, if you stand up a server that streams from my server, and you run out of money, you could get notified you're out of money, and then as you continue to explore, I guess the thing that makes the most sense is that you just use the original seed to generate more terrain.

On paper, sure. In reality there are only going to be relatively few maps people might actually want to explore.

Okay. Right now, you can visit the Marketplace to pay Minecoins to download maps others have made. If you look at the prices, they're absurdly inflated.

I'm proposing a way more organic and cheaper marketplace. I think a "reddit of cool places to visit" that you just click a link, and you're in someone else's map for as long as you want to be, could be really nice.

Add ways in-game to make a portal to someone else's server... and you're making something really neat.

That's why I wrote, "then set it up so that "downloader pays" for bandwidth, plus a small royalty for the creator. As a downloader, I get to set up rate limits, etc, to not accidentally spend more than I want to, etc."

So, I set up a server.

You put $10 in your Minecraft account.

You load up my world, say 96 chunks at first. 1.15 MB of data.

Let's say you fly around long enough to load 1 GB of my world. That's a crap-ton of flying around, by the way.

You pay me $0.10. $0.09 of that goes to my AWS/Azure egress, and the final $0.01 goes towards the AWS/Azrue storage and my own royalty. That's right - I actually get paid for making a world that you wanted to visit. Imagine that.

Maybe I can't even get that money back out of Minecraft's walled garden. Maybe I can only use that to fly around other people's world, or to buy Minecoins that I can use to purchase mod packs and stuff, to make even more interesting worlds, to attract more players.

Seems like a nice economy, to me.

How is this different from just loading your world in a server and having your friends join?

Because player location, inventory, actions, are all load on the server. That's why servers have player limits.

BitTorrent isn't going to work.

You and I are talking about different things. I'm talking about serving up the raw blocks alone.

And yes, I know, Minecraft servers don't support static file serving, or streaming from another source, or copy-on-write. I'm saying these are all nearly trivial to implement.

I'm so continuously confused why Minecraft doesn't have a show-off mode where a team of people can build something, and then someone else can spectate it, without causing undue server load.

I should be able to give you a URL to some location, and when you click it, it opens up Minecraft, streams the blocks, and you're viewing it.

minecraft://server/loc?w=0&x=0&y=0&z=0

w is the overworld, nether, end, etc.

And if you want to set up a server where you and your friends can interact with each other and make edits, the server should be able to stream blocks from some backing server, but copy-on-write them to your own local storage.

How is this not a thing?

If you want to be really awesome, set it up like bittorrent, where you can share the load, so the central server isn't hammered.

And if bittorrent doesn't really work as a model, then set it up so that "downloader pays" for bandwidth, plus a small royalty for the creator. As a downloader, I get to set up rate limits, etc, to not accidentally spend more than I want to, etc.

This whole 2b2t would cost $2,111.04 to download from AWS, if I'm doing the math right. But that's a trillion blocks. You don't need a trillion blocks to enjoy flying around some awesome maps.

NetHack 5.0.0 3 months ago

So, if I understand correctly, the goal is to enjoy dying thousands of times?

Or, to give up and read online how to play?

Or some of both?