4 ms·
The algebraic structure of Infinite Craft
- H8crilA 3y agoDoesn't the weirdness come from the fact that this structure is commutative, but not associative? I know of only one other structure of this type, namely floating point numbers. For those that don't remember definitions: (a+b) = (b+a), but ((a+b)+c) sometimes does not equal (a+(b+c)), even more so in Infinite Craft than in float addition. Such structures are unusual in mathematics.
- shmageggy 3y agoCombined with the hyper-edges, I agree that's what's unusual here. Some Googling for "commutative but not associative" gave (besides some abstract math examples) the game of Rock, Paper, Scissors and the average function as two intuitive examples.
- deleted 3y ago[deleted]
- opnitro 3y agoNit picking, but floating point is commutative either. 1 + NaN == NaN Nan + 1 == NaN Nan != Nan (NaN is defined as not being equal to itself)
- stefanpie 3y agoHypergraphs are awesome, and I wish they got more attention. They actually make intuitive sense in contexts like circuits and other hardware design problems. However, the last time I checked, all the Python and Rust Hypergraph libraries did not have support for directed edges (or it wasn't documented very well). The "tersest route" problem seems to be interesting as I have never come across this before. It seems almost like a packing or covering problem.
- Scaevolus 3y agoInfinite Craft is _not_ commutative! It's only _mostly_ commutative. Here are some examples (first|second| first+second|second+first): Flattened|Bulldozer|Land|Road Mosque|Cactroll|Mecca|Oasis Offering|Ragnarok|Odin|Sacrifice Eel|Lilo|Stitch|Nemo Sauna|Chia|Sweat|Chia Pet Vinegar|Owl|Wisdom|Vinaigrette Cool|Medicine|Ice|Ice Pack Sunken|Shatter|Ship|Treasure
- quuxplusone 3y agoInteresting. Can you expand a bit more on how you're seeing these? On both desktop and mobile, empirically I observe that Neal's front-end sorts `first` and `second` alphabetically before submitting them to the server, so that even if you (drag, tap) "Flattened" and "Bulldozer" in both orders, it will send `/api/infinite-craft/pair?first=Bulldozer&second=Flattened` to the server in both cases. Furthermore, when I use Chrome's "Copy as fetch" and paste it into the console, so that I can manually change the URL to `first=Flattened&second=Bulldozer`, I still observe that the server responds `{result: 'Road', emoji: '', isNew: false}` in both cases. The null hypothesis is that the backend server is also sorting the inputs alphabetically before consulting the cache/LLM. However, "Bulldozer + Flatten = Land"! I discovered that by accidentally mistyping "Flatten" instead of "Flattened" the first time I manually edited the URL. Is it plausible that, during whatever you were doing to generate these, you just mistyped one of the inputs... and it happened as many as eight times?
- Scaevolus 3y agoHuh, maybe Neal started sorting inputs to canonicalize them mid-way through my scrape? Without that sorting, presuming the backend is some LLM prompt plus the two input words, there's no guarantee that the LLM would emit the same result for both orders-- or it could even be up to randomness in the sampling!
- openasocket 3y agoThis actually sounds really interesting. As a game, it lets you explore the geometry of an LLM and how it associates things. I'd be curious how this is getting formatted into prompts. Also curious if there's any other properties these relationships exhibit. I'm guessing there is no zero element, where "x + 0 = x" for all x. I'm also guessing there's no idempotent elements, where "x + x = x". There's probably no ability to loop around in general. But I'm curious if this is cancellative, i.e. if x + y = x + z imply y = z. I'd also be curious to see if there's any sort of embedding or approximation from this structure into another. At first I thought of word2vec embeddings, and how addition of vectors could have some logical structure. But that algebra is associative. Maybe mapping it to some algebra where x * y = f(x + y), where * is the non-associative operation, x+y is vector addition of the embeddings, and f is some transformation. Actually, that could be interesting. If you could find some embedding and f transformation that very closely matched the Infinite Craft algebra, you could use the difference between x and f(x) as vectors to try and quantify the degree to which the algebra fails to be associative.
- celdon25 3y agoHow much time did the author actually spend using Infinite Craft? No mention of the IC Browser (instead pointing to a github file which is smaller by many orders of magnitude), or the properties of combining items with two or three emojis. Or the novel ways to get specific things like movie titles (through AI prompts on the backend), and further algebraic combinations downstream from that. Seems like low-effort clout-chasing and click-baiting to pad the blog (but there's a lot of that kind of content posted here, so I guess it is what it is).
- swyx 3y agoyou come off a bit condescending, may want to lighten up just in general for your worldview. what is the IC Browser? cant expect everyone to know everything for a new game
- celdon25 3y agoYou're right, it was a bad few days and I shouldn't have been posting. https://infinibrowser.zptr.cc/ https://infinibrowser.zptr.cc/