Live data from Hacker News

Infinite Craft

neal.fun

371–380 of 831 posts

Re: Infinite Craft

#371
post #93

Earlier quoted context omitted.

Ahh, neat application of it. Explains the somewhat dubious combinations I was seeing.

Forest + fire = smoke Mud + water = swamp Swamp + plant = Venus Flytrap Okay, okay. Venus Flytrap + Smoke = smoke detector

Nuclear power station + Tsunami = Fukushima

Re: Infinite Craft

#372

Earlier quoted context omitted.

Tree + Water = river was also pretty baffling. Unfortunate. I can see the appeal of using an LLM for this but the results are pretty mediocre.

Meh, what would be your great response to Tree + Water? A human can only generate a small fraction of the combinations and would have a hard time coming up with most combinations which are already nonsensical. What is your non-disappointing idea for, idk, Tears + Pottery (AI: Bowl) or Money + Salt Lick (AI: Cow) or Skull + Lake (AI: Loch Ness) or Dracula + Pirate (AI: Vampirate) or Curse + Money (AI: Debt)? Now do th…

Money + Salt Lick makes sense, if it’s a Cash Cow.

Re: Infinite Craft

#373
post #108
post #9

I couldn't find any information but does this use some kind of LLM to derive the combinations from? It makes a request to the backend every time you combine items which sometimes takes >500ms, and also supports some really wild combinations that I highly doubt someone has taken the time to come up with. It would also explain why the icons are emoji's, it would be fairly trivial to ask ChatGPT to give you the result o…

This might explain how I got “Super volcano” and “Supervolcano”

One’s really big, and the other is really cool?

Re: Infinite Craft

#375
My friends and I have played so much already that the list of elements on the sidebar is unwieldy. You can paste this little js snippet into the console to add a basic search feature

  items = () => [...document.querySelectorAll('.items div.item')]
  show = (elt) => elt.style.display=''
  hide = (elt) => elt.style.display='none'
  search = (text) => (items().forEach(show), items().filter(e => !e.innerText.toLowerCase().includes(text.toLowerCase())).forEach(hide))
  inputElt = document.createElement('input'); inputElt.type='text';
  document.querySelector('.sidebar').prepend(inputElt)
  function handle(e) { search(e.target.value) }
  inputElt.addEventListener('input', handle)

Re: Infinite Craft

#378
Angel + Zeus = God. o_O

This little game is too entertaining. I hope the author open sources it, or writes a technical blog post on how it's implemented.

Re: Infinite Craft

#380
post #300

Earlier quoted context omitted.

Addition won't work for things that depend on the order of operations. If salt + water is ocean and water + fire is steam, what's salt + water + fire? Is it salt + steam or ocean + fire? Associativity and commutivity in vector addition doesn't translate well to semantic meaning. Extrapolating your example, it'd also mean: v_king - v_queen ~= v_father - v_mother v_king - v_royalty ~= v_father - v_parent v_king - v_fat…

Isn't the reason for lack of associativity/commutivity is that you're doing operations (addition/subtraction) that have them, and then snapping the result to the closest one of fixed number of points in your output dictionary? The addition is fine, loss of information is in the final conversion.

There's definitely some lossy compression when you snap it to the nearest known vector: enumerating every word ever written in human history wouldn't even come close to the 2^(16*D) representable points for a D-dimensional float16 embedding vector. In fact, even adding two float16 values is a form of lossy compression for most additions.

But I'd be surprised if either of those were the primary reason. The words "sea" and "ocean" are different vectors but they'll be very close to each other. salt + water = sea and salt + water = ocean both sound correct to me so the problem is more about whether the v_salt + v_water can even get to the vicinity of either v_sea or v_ocean.

Post reply on HN