I was chatting with Simon Willison (who's LLM library I use to power gremllm) on Discord and he suggested D&D use-cases. Kinda works!!!
>>> from gremllm import Gremllm
>>> player = Gremllm('dungeon_game_player')
>>> player.go_into_cave()
'Player has entered the cave.'
>>> player.look_around()
{'location': 'cave', 'entered_cave_at': '2025-07-02T21:59:02.136960'}
>>> player.pick_up_rock()
'You picked up a rock.'
>>> player.inventory()
['rock']
(further attempts at this have ... varying results ...)
jmsdnns · 9h ago
i helped Chris Callison-Burch design a class at upenn, called interactive fiction, which is a similar context to what Simon suggested. the real magic is that it reframes hallucinations as creative story telling. the usecase is SUPER fun if you imagine the LLM as a dungeon master telling a story that gets expanded over time.
the framework he and I built kept track of the game state over time and allowed saving and loading games as json. we could then send the full json to an LLM as part of the prompts to get it to react. the most neat part, imo, was when we realized we could have the LLM generate text for parts of the story, then analyze what it said to detect any items, locations, or characters not jn the game state, and then have it create json representations of the hallucinated objects that could be inserted into the game states. that sealed the deal for using hallucinations as creative story telling inside the context of a game.
i wasnt officially part of upenn at the time, so my name isnt listed on the site, but we wrote a paper about some of the things we did, such as this one, and you'll see me listed there https://www.cis.upenn.edu/~ccb/publications/dagger.pdf
vunderba · 6h ago
Sounds similar to AI Dungeon which I believe ran on a fine-tuned version of GPT-2 "all the way" back in 2019. And honestly kind of reminded me of the "Mind Game" in the novel, Ender's Game.
Just want to say that I'm not an ai guy at all, but this has made me more excited about it than anything in a while. Really cool! Did you also do the one where you put "spells" in your code?
Whenever I see this sort of thing I think that there might be a non-evil application for it. But then I think ... where's the fun in that?
femto113 · 12h ago
I share your feelings. What it most brings to mind for me is the infamous StackSort from the image alt text on XKCD comic 1185 (https://xkcd.com/1185/)
I had some vague plans to make it self-hosting; this might make that even lower effort :)
andreabergia · 15h ago
from gremllm import Gremllm
# Be sure to tell your gremllm what sort of thing it is
counter = Gremllm('counter')
counter.value = 5
counter.increment()
print(counter.value) # 6?
print(counter.to_roman_numerals()) # VI?
I love this!
SoftTalker · 13h ago
Awesome, now I don't have to write mocks for testing!
cofob_ · 3h ago
I implemented something similar a couple months ago, but the principle was based on inspecting the code of the calling party.
Love it, I am here for exactly this sort of playful boundary nudging.
"Wet mode" is such a fantastically awful name. Definitely make me think twice about turning it on.
awwaiid · 6h ago
You know... Because if you get them wet they multiply, per the documentaries
afcool83 · 6h ago
…I read the whole article at OP’s link, many comments off this thread…I even clicked into the college course material in https://news.ycombinator.com/item?id=44468452 …and not once did it occur to me why it was called “wet mode”…not once…
…until your comment. Here! Take my “lived through the 80’s and 90’s” card.
taneq · 2h ago
This is horrifying. Please, go on. :D
How do I give it a base URL for API calls so I can point it at my ollama server?
cudder · 10h ago
Thanks, I hate it! Brilliant and absolutely disgusting.
the framework he and I built kept track of the game state over time and allowed saving and loading games as json. we could then send the full json to an LLM as part of the prompts to get it to react. the most neat part, imo, was when we realized we could have the LLM generate text for parts of the story, then analyze what it said to detect any items, locations, or characters not jn the game state, and then have it create json representations of the hallucinated objects that could be inserted into the game states. that sealed the deal for using hallucinations as creative story telling inside the context of a game.
i assure you the D&D context is very fun! the class website might give you more ideas too https://interactive-fiction-class.org/
i wasnt officially part of upenn at the time, so my name isnt listed on the site, but we wrote a paper about some of the things we did, such as this one, and you'll see me listed there https://www.cis.upenn.edu/~ccb/publications/dagger.pdf
https://en.wikipedia.rg/wiki/AI_Dungeon
It feels like an AI cousin to the Python error steamroller (https://github.com/ajalt/fuckitpy).
Whenever I see this sort of thing I think that there might be a non-evil application for it. But then I think ... where's the fun in that?
Shameless plug: People who love-hate this might also love-hate vibeserver (https://github.com/lxgr/vibeserver).
I had some vague plans to make it self-hosting; this might make that even lower effort :)
https://github.com/cofob/autogenlib
"Wet mode" is such a fantastically awful name. Definitely make me think twice about turning it on.
…until your comment. Here! Take my “lived through the 80’s and 90’s” card.
How do I give it a base URL for API calls so I can point it at my ollama server?