HN user

corysama

11,842 karma
Posts100
Comments2,472
View on HN
mamoniem.com 3mo ago

Behind the Pretty Frames: Pragmata

corysama
2pts0
zeux.io 9mo ago

Optimizing meshoptimizer to process billions of triangles in minutes

corysama
1pts1
pixie-3d.github.io 11mo ago

Pixie: Infer 3D physics simulations from images

corysama
8pts0
radiancefields.com 1y ago

Zillow Adds Gaussian Splatting Support with SkyTour Unveiling

corysama
1pts1
github.com 1y ago

Gigi: EA's open framework for rapid prototyping realtime rendering techniques

corysama
3pts1
zju3dv.github.io 2y ago

Level of Gaussians: Real-Time View Synthesis for Millions of Square Meters

corysama
183pts40
intrinsic-lora.github.io 2y ago

Generative Models: What do they know? Do they know things? Let's find out

corysama
381pts122
radiancefields.com 2y ago

Radiance Fields, NeRFs and Gaussian Splats

corysama
1pts0
dl.acm.org 3y ago

Large-scale analysis of code re-use in Atari 2600 games (2022)

corysama
80pts32
enginearchitecture.realtimerendering.com 3y ago

Rendering Engine Architecture Conference 2023

corysama
1pts1
github.com 3y ago

DXX Raytraced (open-source Decent 1&2) release 1.0.0

corysama
4pts2
asheron.fandom.com 3y ago

Wi Flag (2002)

corysama
505pts205
mamoniem.com 3y ago

Behind the Pretty Frames: Death Stranding

corysama
2pts1
www.protocol.com 4y ago

Facebook's metaverse spending will top $10B this year

corysama
15pts22
github.com 5y ago

Imgui-app: Dear IMGUI and Render and Window handling, amalgamation in two files

corysama
1pts0
simoncoenen.com 5y ago

How Doom Eternal Renders a Frame

corysama
3pts1
acko.net 6y ago

Software Development as Advanced Damage Control

corysama
3pts0
unblind.tech 6y ago

Using motion effects as an un-colorblind filter

corysama
3pts1
cookieplmonster.github.io 6y ago

Restoring the Gold Filter in Deus Ex: Human Revolution – Director’s Cut

corysama
140pts59
ingowald.blog 6y ago

Digesting the Elephant (Rendering the Moana Island Scene)

corysama
2pts0
www.pouet.net 6y ago

MySQL Raytracer

corysama
3pts2
www.inexhibit.com 6y ago

Project SPHINX – When the USSR tried to change the computer forever

corysama
2pts0
hackernoon.com 7y ago

Tensorflow has gone full Keras

corysama
12pts4
gamasutra.com 7y ago

Building a 'homebrew' video game console

corysama
1pts0
zznop.github.io 7y ago

Sega Genesis ROM Hacking with Ghidra

corysama
1pts0
community.viveport.com 7y ago

The Vive Hand Tracking SDK

corysama
2pts0
fastcompression.blogspot.com 7y ago

XXH3 – a new speed-optimized hash algorithm

corysama
275pts83
skarredghost.com 7y ago

Details of Microsoft’s Azure Kinect DK Depth+color Camera

corysama
1pts0
primitive.io 7y ago

Primitive: VR visualization of your code IDE

corysama
1pts0
github.com 7y ago

Fibre:A WebGL application for visualizing 3D vector fields and dynamical systems

corysama
146pts34
Making 6 hours ago

I'm the opposite. Between work and family, I don't get a lot of time to hole up in a cave with an IDE for fun. Prior to LLMs, it was a struggle to get much of anything done. So, I rarely tried. But, now I can get ideas fleshed out and even get code down in the small breaks I get to myself. Now I'm making progress where I wasn't before.

Sometimes I'm not interested in the inner workings of a technology, I just want a one-off tool. Ex: No interest in web tech. But, vibe-coded a tool to scrape and cross-reference a couple of online reports. Now I have the info I need for other projects.

Sometimes I know exactly what I want and it's quicker to hand-hold the AI through making it for me. Ex: Put together yet another SIMD math lib recently. SIMD intrisics are an obnoxious API. But, a non-SIMD implementation is easy to verify and many SIMD implementations are easy to validate vs. the non-SIMD reference. It's just a huge amount of obtuse code.

Sometimes I don't know exactly what I want and it's great to have a always-online partner to bounce questions off of, do rapid-prototyping for me, do code reviews for me. AIs aren't perfect. But, being instant, patient and often right makes them a huge improvement over online forums.

Classic SSAO is very similar to performing an "unsharp mask" based on the depth buffer. This has been proposed "a simple and efficient method to enhance the perceptual quality of images that contain depth information" in the paper "Image Enhancement by Unsharp Masking the Depth Buffer" which came out a year after SSAO was published by Crytek.

https://www.uni-konstanz.de/mmsp/pubsys/publishedFiles/LuCoD...

This is a very important paragraph from quern's article

There are few to no side-effects to melatonin use in adults (there is uncertainty about the risks & benefits in children & adolescents28), and it is not addictive or habit-forming like caffeine is. The usual dose for a night is 0.5-3 mg and I take 1.5mg [29]; my dose is highly likely to be too high. High doses may well be responsible for why some people try melatonin and report that it does nothing or hurts them, since in one study, the best dose for old people was 10x smaller (0.1mg or 0.3mg) and for one blind person, 0.5mg [30 31 32] . Zhdanova et al 1996 found 0.3mg & 1.0mg to affect sleep onset similarly. A study of delayed-release melatonin found with their high dose of 4mg (but not 0.4mg) elevated melatonin levels 10 hours after bedtime ( Gooneratne et al 2011) - potentially interfering with waking time.

It is difficult to find doses as small as 1mg sublingual (dissolve under the tongue) in my area. Everyone is trying to sell you 5-30mg chewables. And, I expect everyone is buying them under the assumption that more is better. But, here it explicitly is not.

The way melatonin works well for me is to wait until I'm already settled into bed and should be asleep, but I'm not. Do a couple body scans to relax for real. Try to think about something mindless. Then if I'm still awake, pop 1mg under my tongue. I'll usually wake in the morning with half of it drooled on my pillow :P

I’m not a scholar of the fall of SGI. But, I’m sure it has been documented in detail.

AFAICT, SGI was a textbook Innovator’s Dilemma case with an expensive enterprise product that’s hard to give up in the face of cheap, low-margin competition.

Back in the late-90s/early 2000s boom it was not a secret that enterprise corps pushed universities to teach Java because they wanted easily-replaceable widget engineers engineering easily-replaceable widgets.

On the opposite side, startups building on difficult languages like Haskell, Elixir, Erlang have a built-in bias towards hiring a team that can get a lot more done with a lot less people. Great for startups. Terrible for enterprise.

Old 3D engine guy here. I highly encourage folks to make a 3D engine for fun and learning. Shipping a game with it would be a cherry on top. Come join us in r/graphicsprograming, r/gameenginedevs and the graphics programming discord.

But, if you made a mesh you wouldn’t be able to represent fuzzy objects. That’s one of the major advantages of both splats and this printing technique.

I always liked the advice "Abstract for replacement. Not for reuse."

If you have code that is reusable, you'll want it to have a nice interface. But, you don't need an abstraction on top of a nice interface. Just use it.

For abstraction, what you need to focus on is "What is most likely to change in the future?" You want to put in abstractions that will make those changes low-cost.

Ex: At work there was a small debate about which C++ JSON parser to use with no stand-out winner for our framework's needs. So, we picked one and I put a thin layer over it for everyone to use. We have since then swapped out the parser and swapped it back over the years of a hundred devs using it in our framework and no one noticed the swaps.

Only tangentially related. But, I still have not forgiven Unity for the floating point footgun in https://docs.unity3d.com/6000.4/Documentation/ScriptReferenc...

The operation is finished when the progress float reaches 1.0 and isDone is called. If you set allowSceneActivation to false, progress is halted at 0.9 until it is set to true.

So, I needed to have my UI do other stuff until both this and something else was ready. Obvious thing to do would be to check this for "AsyncOperation.progress >= 0.9" and also check the other thing. Right?

Except AsyncOperation.progress is a float, 0.9 is a double and 0.9f < 0.9. Progress is not halted at 0.9. It never reaches 0.9. It's halted at 0.9f! Just a few million ulps short!

If you want to play with software rendering, here's probably the shortest code that will get an ARGB8888 2D array from main memory to the screen efficiently for all platforms using SDL2 in C https://gist.github.com/CoryBloyd/6725bb78323bb1157ff8d4175d... you'll need to do the translation from a 320x200x8-bit palletized framebuffer to ARGB yourself ;)

If you want to get inspired by what can be done with palletized framebuffers check out http://www.effectgames.com/demos/canvascycle/ (click Show Options) and the GDC presentation by the artist https://youtu.be/aMcJ1Jvtef0

With that you can fire up https://github.com/mriale/PyDPainter for that classic Deluxe Paint IIe vibe. Or, https://www.aseprite.org/ for something more modern.

Then there’s the opposite situation. I knew the guys who ported NBA Jam: TE from arcade to PC (by hand-translating assembly!). Apparently the arcade CPU had bitwise addressing. And, because pretty much all of the data was aligned to bytes, the arcade programmers liked to stuff 3 bits of extra parameter data into the low bits of pointers.

The paradox is usually presented as:

The People: Hey local government! The roads are so packed with cars they are useless. Fix it!

The Government: We hear you and just finished a huge road expansion project. The roads now have 2x the capacity! Enjoy the new fast roads!

The People: The roads are just as slow as before because they are packed with 2X as many cars now!

So, the paradox is that greatly increasing the capacity of the roads led to the roads being just as slow as before. Maybe even slower. This is because there previously were lots of potential uses of the roads that people did not enact because it would not have been worth the hassle. But, now with 2X the capacity, those uses become viable. So, more people find more uses of the roads up until it gets right back to the limit of everyone patience.

Apply this to coding and you can predict: Coding is much faster and easier now. So, why are all my coders still so busy?

Ti-84 Evo 3 months ago

"Approved for Exams" make more sense when you take into account the history of the Ti family of calculators.

Why are they still able to sell what is effectively a 30 year old computer for as much or more today than when it came out? Because they managed to get the family informally standardized as "The calculator every teacher in America understands well enough to manage students who use it. Therefore pretty much everything else that could be as or more advanced is effect banned."

It was an amazing piece of kit when it first came out. No doubt you could make something 100x better and 10x cheaper today if someone really tried. But, they would fail commercially because you can't design-in 30 years of legacy in the US school system.

Dynamic occlusion culling is pretty common these days now that the GPU can do its own filtering of the draw list. I think it goes like:

Start with a list of objects that were visible last frame. Assume they are visible this frame. Go ahead and draw them.

Then, for the list of things that were Not visible last frame, draw bounding box queries to build a conservative list of objects that might actually not be occluded this frame. This is expected to be a short list.

Take that short list and draw the probably-newly-visible objects.

Have queries attached to all of those draws so you end up with a conservative list of all of the actually-visible objects from this frame.

This obviously has problems with camera cuts. But, it works pretty well in general with no preprocessing. Just the assumption that the scene contents aren’t dramatically changing every frame at 60 FPS.