Posts

Cybernetics and Fiction Writing

Image
What are the core principles of cybernetics that relate to storytelling? Cybernetics, the study of systems and control, shares fundamental principles with storytelling, particularly in the concept of agents having goals and operating within an environment. In cybernetics, a system (an agent) is designed to achieve a specific objective or state. This parallels how characters in fiction are driven by motivations and goals that shape their actions and the narrative's progression. The idea of feedback loops, crucial in cybernetics for system regulation, can be seen in narrative arcs where character actions lead to consequences that, in turn, influence future actions. For instance, a character's attempt to achieve a goal might result in an unexpected event (an 'Event' in the 'Agent Ledger Object' model), which then necessitates a new strategy or adaptation from the character, mirroring a cybernetic system's response to environmental changes. The '...

Wire Diagram

Image
Not only am I happy that I got my wire diagram for the UI done, but I'm also quite pleased that I developed a wire diagram process from the Cmap tools in the first place. I can reuse the same process for future projects for faster design and development. The app design is simple and straightforward. The arrows are component clicks (such as on buttons or list items) and the boxes are the different screens that result from such clicks. It's all very neat. Software used: Cmap | CmapTools cmap.ihmc.us/

Algo Design: Scenarios

Scenario: The event series (as text output) modified by a character's stats. Scenario example: Event 1: Olmec is offered a challenging task.  (environmental prompt) Event 2: Olmec turns down the challenging task. (character response) Event 3: Effects (stat changes) on Olmec and his environment due to his decision such as an increase or decrease in stress and life difficulty. (environmental response)

App Idea: Task Ranker

 July 23rd, 2025 Priorities: Ranks your tasks according to how well they match your core values. Your core values each carry an importance score. Higher scores mean a more cherished value. A task is rated on how well it fulfills a core value. Such an app would provide the user with the most meaningfully rewarding task at any given moment. Addendum, August 3rd, 2025: I call this measure 'eudaimonic utility.' The higher the meaningfulness of a task, the more eudaimonic utility that task represents. This can be contrasted with 'hedonic utility,' which measures pleasure. Eudaimonic utility can also be contrasted with 'experiential utility' which measures the satisfaction of psychological richness or variety. Reading: -Chapter 2 of Human Compatible by Stuart Russell -Life in Three Dimensions by Shigehiro Oishi

Current State of the StoryTeller App

Image
Home Screen, KivyMD UI with Mongo Database  Create Characters output  Create Story output  Story output, verbose

Ledgers, Ledger Objects, Event Scripts, Statuses and Scenarios

Image
Here, ALO and ELO stand for Agent Ledger Object and Environmental Ledger Object, respectively. Both are examples of Entity Ledger Objects (ELOs from here on out). Event Scripts modify the features and associated stats of ELOs. Status is the text description of an ELO state or change. The Scenario is formed by the interaction among one or more ELOs, their Event Scripts and Statuses. This post is a continuation of: https://quantasticjourney.blogspot.com/2024/11/narrative-development-environment.html?m=1

The Good, The Bad and The Stirred Up

Image
Here, I am generating multiple events for a character. Each output has a two sentence storyline. Jimmy will not be stirred up easily. Jimmy has not insulted others. Olmec is stirred up easily. Olmec insulted others. Nemo will not be stirred up easily. Nemo is not insulting others. #the code import random  from itertools import chain agent_name= "Nemo" class insulting():     def __init__(self):         self.score = random.randint(1,5)         self.text = ["insulted others","is insulting others","will insult others"]         self.text_not = ["has not insulted others","is not insulting others","will not insult others"]         self.factors = ["agreeableness","cooperation","pleasantness","rudeness"]          class stirred_up():     def __init__(self):         self.score = random.randint(1,5)         ...