Remix.run Logo
kittoes 2 days ago

https://github.com/ByteTerrace/Puck/blob/main/src/Puck.World...

"Shipped" is a bit strong in my case, but I think this counts as something that isn't mere slop.

dandellion 2 days ago | parent | next [-]

One sentence into that readme I can tell you that yes, it most definitely counts as slop.

kittoes 2 days ago | parent | next [-]

That's fair critique, the README itself is indeed slop explicitly written by bots for bots. What it actually does and how it works is actually pretty neat if you care to look.

Chris2048 2 days ago | parent [-]

Then.. why would you link to the readme if you know it's slop? What's the point of a slop README?

kittoes 2 days ago | parent [-]

'Cause I don't have any quality user-facing documentation yet; that README is for bots. None of the interfaces have had a chance to settle, so any time spent accurately and humanely documenting what the project is capable of right now is an investment I cannot afford. I figured most people would just give it over to their favorite LLM with whatever instructions they prefer for translation because that's what I would've done...

rsfern 2 days ago | parent | next [-]

I don’t mean to pick on you in particular here, but this approach has been bothering me a lot lately, and it seems like it’s super common.

I get that it’s an early prototype and not all the design choices are made yet, but I struggle with “I can’t afford human-readable documentation yet”. Isn’t human readable documentation important for efficiently planning and deciding what you want to build? I feel like I can’t afford not to have human readable docs and plans while the project is taking shape

Related, if a user can prompt an agent to translate to a human-readable summary, wouldn’t it be better to just do this in place? Sure, models can deal with noisy LLM outputs but shouldn’t a document that’s easier for humans also be easier for bots?

kittoes 2 days ago | parent [-]

No worries, I don't feel picked on at all.

Yes, it would probably be better to have something like that if you're struggling to plan and decide. In my particular case this has been a project that I have dreamt about and tinkered with for at least 15 years now. Most of the work I'm doing is just refinement of existing ideas what were already codified in other projects I've built.

Why don't I do this in place? The amount of churn is utterly incredible as ideas are refined and taken to the limit. These agents are getting quite good, but they regularly make the silliest of mistakes. You actually have to be extremely cautious about what you document because it often has a way of becoming "doctrine" to the agents. In fact, one of the most difficult parts of working on this project has been that the foundational properties cause the agents to lock down behavior WAY too early.

Chris2048 2 days ago | parent | prev | next [-]

What does "that README is for bots" mean? Are you implying it is some kind of special language written by and correctly understood by bots/LLMs, but otherwise semantically coherent?

kittoes 2 days ago | parent [-]

Sort of? The bots almost insist on making sure one exists because that's one of the many patterns they trained on and they do their best to be human-like, but we all know that just doesn't pan out. They're also a side-effect of your long-term interactions with the agents, very much like being in a tight clique where most of your conversations sound like gibberish to outsiders because of all the jargon.

inigyou 2 days ago | parent | prev [-]

Wait so someone asked for something you made with AI that wasn't slop, and then you linked to something you knew was slop, and you said "I think this counts as something that isn't mere slop" and then when called out on it you admit you knew it was slop the whole time?

This is a frequent pattern among AI users. What causes it?

fzeroracer 17 hours ago | parent | next [-]

I noticed this as well. A few days ago I was linked a game engine here when I similarly asked for proof and when I went to the repo and started reading it, the best way to describe it was keyword jargon soup and it seems to be the same for a lot of projects in this thread.

I think it's because it makes them seem...smarter? More technical? But they can't describe who it's for or what the actual design is without consulting an AI.

kittoes 2 days ago | parent | prev [-]

The README is, the project absolutely isn't and you don't have to take my word for it. I figure I'm speaking to a technically advanced audience who is perfectly capable of pulling down the repository if they're at all curious. I also provided a non-slop link elsewhere in the thread if that's more your bag. If not, oh well...

inigyou 2 days ago | parent | next [-]

The project appears to also be slop.

dandellion a day ago | parent | prev [-]

Why would anyone pull it? When I want slop I just ask the AI to generate some exactly the way I like it.

kittoes a day ago | parent [-]

I get the skepticism, I really do, but my hope is that your own AI(s) confirm exactly what I'm claiming within these comments. Like I've told others, there's no need to take my word for it... the entire point of the project is that anyone can execute/prove the same things I claim using their own hardware via a Doom-replay type format. If I was one of those influencer types, then I would've simply led with "it's an agentic first engine!!! how amazeballz is this?!" or some other nonsense. On the extremely off chance that I'm actually working on some sort of ridiculous ARG, consider this post a canonical part of it.

lovich a day ago | parent [-]

> I get the skepticism, I really do, but my hope is that your own AI(s) confirm exactly what I'm claiming within these comments

Given that you stated your readme is for bots, given that you expect our own AI to interpret it based on your evidence, how do I, as a human, go about evaluating this project without just writing it off as slop from the linked evidence?

What is the starting off point for a human, not an AI agent, to evaluate this?

And to be clear if the answer is to just download arbitrary code onto my machine and run it, that’s not good enough given the increase in attacks from AI projects and fake recruiters telling you to just run it bro. I’ve already had to pass on multiple interviews despite being unemployed because the human/ai on the other side demanded root access or for me to run arbitrary code onto my machine as part of their process.

kittoes a day ago | parent [-]

Frankly, there's no "good" starting off point for a human right now, and that's why I'm not at all comfortable claiming this has actually shipped. It's very much a WIP where only a select few namespaces have actually had a chance to settle.

That said, the maths library might just be the best thing to start with because it's mostly stable, relatively simple, and virtually every other part of the project depends on it in some way. If graphics are more your jam then maybe check out the SDF VM project and associated documents. All rendering goes through a single instruction set that is implemented via a shader pipeline that allows arbitrary scenes to be defined without shader recompilation. The project is essentially multiple compilers wearing a trench coat so there's a little bit of something for everyone... like two fully implemented emulators of the brick variety, including peripherals.

If you're adventurous and want to have your favorite LLM give the project a review in a sandbox then I think that'd be neat! Especially considering that they would have absolutely no problem driving everything themselves through STDIN. Though I totally understand if that's not something you're keen on doing considering the state of things today. Either way, cheers!

lenkite 2 days ago | parent | prev [-]

Jesus Wept. Software engineering is dying at the moment and everyone has AI Glitz in their eyes.

kittoes 2 days ago | parent [-]

Dying? Really?

https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths...

Some of us aren't just slopping it up like @theo and all the other AI influencers are, as I developed nearly every single line of this by hand over the span of the past decade. Agents recently became capable of factchecking it and helped find bugs that my other unit testing never caught. Software engineering has never been more alive!

https://gist.github.com/Kittoes0124/6827d08e457c1c8b790422af...

This is a snippet I wrote years ago to help me study different formulations of the equation ((1 + √5) / 2). There was this thing I could "see" in there that would allow me index into these sequences, and whole families of others, in O(1) time. The problem is that I still don't know enough maths to derive the exact object that I want from the nonsense that I have.

https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths...

This is the reformulation of that snippet into a proper object, distilled using Fable and Sol. Unlike BinaryIntegerFunctions, I didn't write a line of this and I'm quite happy with that. It's been a slog for so long... being able to let these agents toil away at all the off-by-one type noise is just nice. I get to focus on an actual product for once instead of manufacturing every single nut and bolt myself.

lenkite a day ago | parent [-]

I am just confused on how you know that all of what has been generated is valid. When you write the code generator yourself, you have that level of confidence.

kittoes 20 hours ago | parent [-]

It's mathematically provable in most cases because the engine is deterministic from the ground up and I refused to ever compromise on that one detail. For example, nearly all of the VM and maths code functions have been validated for ALL possible 32-bit inputs and extensively fuzz tested in the 64-bit range. Even the more complicated sections of the code like the emulators have batteries of third party tests that ensure a certain level of compliance. The fact that you can play commerical ROMs to completion, including esoteric titles that require third party peripheral/MBC code, is quite solid proof too!

A form of recursion is also doing a lot of heavy lifting because the emulators are their own separate deterministic engines that are dynamically plumbed into the primary loop. This not only allows us to embed diegetic devices (as in, you can literally pick up a glowing brick in the world, hold it to your face, and play it), but also validates that the primary loop is coded accurately because the outer loop runs at X Hz while humble bricks must run at ~59.7275 Hz. Pacing inaccuracies in the main loop cause us to fail the brick suites that we test against. This concept of having features reinforce one another is applied as often as possible.

The obsession with determinism goes so far that both the DirectX and Vulkan backends are validated against each other for pixel level differences. If they differ more than the expected maximum then code is refactored until the drift is back within acceptable range.

inigyou 2 days ago | parent | prev | next [-]

... What is it? A game, apparently? There are no screenshots. Is the game fun?

kittoes 2 days ago | parent [-]

It's not a full game yet, but the substrate on which I am building one. It implements a completely deterministic SDF VM rendering engine that allows edits in real-time at acceptable performance levels. The engine is essentially folded in on itself as the editor is the game; assuming that an editor mode was actually defined in the world document. It's a lot...

https://claude.ai/code/artifact/382aee8a-3a3b-4cf8-801f-3ddb...

inigyou 2 days ago | parent [-]

[flagged]

kittoes 2 days ago | parent [-]

It has so many words precisely because it isn't a slop game engine. You could indeed build a game out of it, and that's what I'm personally doing, but that isn't what it is. In a nutshell: it's just a really fancy compositor. We can take arbitrary feeds from different input sources and composite them in pretty much whatever way we want to. Obvious basic things like four-player split screen is possible but you could also choose to embed a fifth player screen within the game world itself, sculpted and riding on top of actual geometry. We can do this with a webcam, a program, the entire desktop, or even the built-in emulation engines; all editable and composable in real-time via a data-driven document. That's just scratching the surface...

inigyou 2 days ago | parent [-]

this is definitely slop. It's not slop because it supports 4-player split screen? That's your excuse? I think if I posted this same project to you and you'd never heard of it, you would come to the same conclusion.

kittoes 2 days ago | parent [-]

Did you actually try to read what I wrote, or are you just stopping at the very first thing you can parse? I'm engaging in good faith with you here, it would be nice if you even remotely attempted to do the same. You can literally walk around in a world, pick up an in-world device, turn it on, and watch/hear the device play an actual ROM. Furthermore, you could edit that ROM while you're playing it. Recursion and determinism all the way down. Again, that's just one of the many possible things you could do... call it slop all you want; I'll still believe that it's coolest thing I've ever worked on.

inigyou a day ago | parent [-]

A render graph is also nothing new, and neither is screen capture.

kittoes a day ago | parent [-]

The most wonderful feature of the project is that there are almost zero new ideas contained within. I'm standing on the shoulders of many giants, proudly.

https://github.com/ByteTerrace/WorldOfWarcraft.Addons.GamePa...

This is an addon that I wrote for WoW, well before having access to any sort of AI, that blatantly copies the crossbar layout popularized in FFXIV. Playing an MMO with a controller in that game was a mind-blowing experience for me because I never imagined it could work! So, I spent a winter break reimplementing the entire thing in my own unique way.

https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Overl...

This is a generalization/simplification of that idea. New? No. Unique? Definitely.

2 days ago | parent | prev [-]
[deleted]