#nanogenmo — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #nanogenmo, aggregated by home.social.
-
We're halfway through the month of #November!
How's everyone doing with their creative challenges?
#creative #CreativeChallenge #30DayMapChallenge #codevember #mapvember #NaBloPoMo #NaBoMaMo #NaNoGenMo #NaNoWriMo #NaSoAlMo #novembeat #WritingMonth
-
It's the last day of October! Hope everyone working on their challenges had a great time!
November is filled with new ones:
- #30DayMapChallenge
- #codevember
- #mapvember
- #NaBloPoMo
- #NaBoMaMo
- #NaNoGenMo
- #NaNoWriMo
- #NaSoAlMo
- #novembeat
- #WritingMonthWhat else are you all joining?
#challenge #CreativeChallenge #WritingChallenge #CodingChallenge
-
Just updated the procedural text generator tool (from the most recent #HowToThing example[1]) to allow storing/loading source template text via the URL hash fragment. That means one can now share small procedural stories/texts like this (hoping Mastodon allows longish URLs):
[1] For context/reference: https://mastodon.thi.ng/@toxi/111347074558293056
-
#HowToThing #030 — Procedural, rule-based & stochastic text generation using a custom DSL, parse grammar (via https://thi.ng/parse) and abstract syntax tree transformation (via https://thi.ng/defmulti).
Since it's #NaNoWriMo & #NaNoGenMo [1], I'm closing out this first season of 30 #HowToThing's with a related topic & maybe someone even finds it useful/interesting... 😉🤷♂️
This example is in principle inspired by @galaxykate's oldie & goodie #Tracery, but is using a super simple custom text format instead of JSON to define variables and template text. Variables are expanded recursively and I've also added features like dynamic, indirect pointer-like variable lookups to derive variables based on current values (useful for conditionals & context-specific expansions), hidden assignments, chainable modifiers... I've included 5 different "story" templates (incl. comments) showing various features. Just press "regenerate" to create new random variations...
Similar to the previous #HowToThing, I'm hoping this example also shows that approaching use cases like this via small domain-specific languages with proper grammar rules, does not require much ceremony and is often more amenable to change during prototyping (and later also more maintainable!) than just regex bashing approaches...
The parser grammar itself is explained in the https://thi.ng/parse readme. As usual, the grammar was created/prototyped with the Parser Playground[2], which we developed from scratch during the first thi.ng livestream[3] (2.5h video)...
Demo (example project #145):
https://demo.thi.ng/umbrella/procedural-text/Source code:
https://github.com/thi-ng/umbrella/tree/develop/examples/procedural-text/srcIf you have any questions about this topic or the packages used here, please reply in thread or use the discussion forum (or issue tracker):
https://github.com/thi-ng/umbrella/discussions
[1] https://github.com/NaNoGenMo/2023/
[2] https://demo.thi.ng/umbrella/parse-playground/
[3] https://www.youtube.com/watch?v=mXp92s_VP40#ThingUmbrella #NaNoWriMo2023 #NaNoGenMo2023 #ProcGen #Generative #TextGeneration #Ngram #TypeScript #JavaScript #Tutorial