Shared Minds — Professor Dan O'Sullivan
Blink
Open the piece → www.ccfrost.com/blink
Reading
Kuleshov Effect
Technique invented by Lev Kuleshov
Close up shot of the face intercut with events, the shot stayed the same, but the next shot changes.
A sequence of images can build more meaning than a single shot
“my job as an editor is to gently prod the audience to look at a particular moment in a frame”
Cutting from a weapon to a victim means danger
this shot cut shot effect can be used to build an association that creates or lowers the tension
an object or prop can be called to intention by inserting shots of it
when an audience is invested in a film they are constantly look for associations
People assume a story is chronological, but thats not always the case
In the Blink of an Eye, Walter Murch
We accept the cut because it resembles the way images are juxtaposed in our dreams. (p. 34)
Film is like thought. It’s the closest to thought process of any art. (p. 35)
This time, the person is being assailed simultaneously by many conflicting emotions and thoughts, and is desperately (but unconsciously) using those blinks to try to separate these thoughts, sort things out, and regain some kind of control. (p. 35)
And that blink will occur where a cut could have happened, had the conversation been filmed. Not a frame earlier or later. (p. 36)
You would attach a series of electrodes to various points on your skull and simply think the film into existence. (p. 82)
Writing
We talked about how you don’t really decide your next thought, it just happens to you. But can other people determine your next thought?
Other people often determine our next thoughts, both in the moment and through their representation in our symbolic mental space. Someone impactful who has been dead 5 years can determine our next thought. So can someone who is not yet born. Only, the causation is not able to be established, due to our embedment in time.
Is that what any storyteller does?
A storyteller uses these same symbolic representations which we have established in our mental landscape around inherited aspects of human culture we learn through sublingual context. A storyteller partakes in similar sublingualities in our own to gain somatic access to our inner world. We expect a story in our tradition to follow typical beats, they understand this same expectation and, may use the informational asymmetry to their advantage.
Why do we love it so much in story where someone is providing the subsequent thought for us?
Stories allow us to test our mental assumptions of the world against a perennially troubling source of knowledge inte world storytellers. Because we all tell stories, we are always trying to square the stories of others. The subsequent thought becomes an opportunity to test our assumptions against shared reality.
Is that what the algorithms of social media and tiktok are doing?
Regenerative, by this I mean, self reflexive, regenerating algorithmic content as first seen on tiktok, forms a closed control loop with the viewer by capturing the informational flow by physically polling the user for their engagement in real time.
One sequence through a space of possible thought is always a thin slice of that reality, does that make story a little bit evil because it seduces people into one sequence hiding the bigger more complicated picture?
Stories are inherently laden with causation, because they rigorously apply the language of this, then that. this is true with communication broadly. Every particular human instance is a little bit evil because of our limited perceptual flows. Nothing can we grasp.
Giving your media persistence allows you to enshrine thought, what are the pros and cons of that, would impermanence be better for stupid and annoying thoughts?
Impermanence is the state of all things. All persistence is fallen. Change IS eternal
Is a sequence different from a flow time?
A time flow is a thermodynamic state, we are measuring energy through space. A sequence has consciousness attached, and thus a filter. A sequence has been formed, plucked from abstraction. A sequence has perspective and some assumption of causation.
Time is the feeling of change and one of the few things that is hard to doubt. Try to carefully examine your thoughts to see how they interact with time?
Does one thought coming after another in your thinking mean that there is a connection between them?
I have a feeling that the occurrence of thoughts in our brain arises from a shared well of subconscious experience. Maybe not in the causation of one thought to the next, except in obvious cases, but as thoughts arise from the body they can very well share a root somatic process.
We have talked about how the contents of subsequent thought is rarely about subsequent chronological event.
Does your taste in a good next thought change define your personality, and does it change over time?
Good thought as in, mental clarity or moral clarity? It is hard to argue against the self assurance provided by moral clarity
Is memory important to thought, can media help reinforce a thought and make it more famous and thus frequent within your train of thought?
Yes, 100% I’m thinking of 9/11
If you go back to the first thought after the second thought is there a recursive effect where the first thought is now different?
THOUGHT IS OUTSIDE OF TIME
Making
Developer journal, Claude compiled
Blink is a Shared Minds piece. You talk, it listens, and when you blink, a picture made from your story so far is swapped in. Each session below opens with my prompts in my own words, then what Claude did, then pictures.
The idea, built on the website — 29 to 30 September
My words
- 22:06 ask gpt astro how to make a shared minds image generator which uses your proactive subconscious to listen to the words you speak and then when you blink, an image it generated from your story so far is displayed. so ideally the image replaces when you blink, it should preload from replicate to handle this process. Use replicate haiku for the translation and prompting of the generator and nano bannana flash for the image. The language recognician engine is already built in shared minds dropplet, final version hosted on my website. Lets build this direclty in my website directory, as it has all the status guides. new branch. MAKE NO MISTAKES
- 22:40 words should not be on the image, find a faster image model
- 22:46 the record should always be on for typing
- 22:47 and there should not be an image for the face, lets get a undulating blob when eles are closed and a pair of eyes that follow yours when open. As many metrics for the eye as possible for this visualization
- 22:52 while I am typing for the first time, the words should spawn onto the page like droplet, but from left to right
- 22:58 the image style must be that of a roreshack test
- 23:25 text needs to go away when the image comes in. take the look of the site as a whole from droplet
- 23:38 can we represent the two eyes with two lines with a dot underneight?
- 23:40 when the eyes close, the two lines collapse down and the dot disapears
- 23:45 using the same infasctucture as droplet, lets make words that have been said more often get more weight behind the scenes n the prompt. I also want the the image to fade into view, and can we get faster images
- 23:47 make the mandlebroughts less abstract
- 23:47 more figurative
- 23:55 it only draws butteflys, make that change
- 23:56 turn the no eyes sign into a circle, and have the eyes form out of the circle when they are detected
- 23:57 get rid of the symstry rules in the mandlebrout
- 23:57 just black and white blog vibes
- 00:21 give me a fully enabled escape key like droplet to edit the prompt jsons
- 00:23 lets bring the full droplet effect on the outskirts of this canvas, bring in their controls
What Claude did
Built in the website repo, from 22:26 to 00:31:
c44d2dbAdded Blink, a blink-triggered image generator. Webcam blink detection, the mic feeding Droplet's transcript, Haiku writing the prompt and the image preloaded so it's ready on the blink.d16ddcdA record indicator for typing, the brainretch preload, the eye visualization and words spawning as you speak.c0a177a,4373f32Rorschach style and symmetry, a fix for the mic-click race, and Blink added to the site nav and sitemap.d564bbf,b5adaffPorted Droplet's real cursive letterforms for the words and fixed the line spacing.fdbd25cWhite backdrop, hidden HUD, and the Rorschach prompt fixed on the real failure case.607a328,8733e8cEyes became a line with a dot underneath, without eyebrows, and they collapse when you close them.3cd729aFade-in, much faster images, more varied subjects (not just butterflies) and no forced symmetry.d1ce2aaFixed bugs from GPT's codebase review.fdc26e9Droplet's own Pool and Renderer around the edges, and its real Esc panel.
Pictures
The first version: a Rorschach butterfly with Droplet's cursive sitting on top of it. That's where “text needs to go away when the image comes in” came from.
Password lock and AWS — 9 to 15 October
My words
- 10-09 00:11 lets implament the previous claude plan to make the photo generation website password locked and implament the appropriet aws database
- 10-15 18:19 where is the code for blink held
- 10-15 so I want to look at and make changes to the code, where can I do that
- 10-15 this all grew too fast
What Claude did
d08df5fLocked Blink behind one shared password and logged each generation to DynamoDB through Amplify. This was in theblink-password-dbworktree and was never merged into the website'smain.- Walked through
aws login, setting a sandbox secret for the password and an audit of the AWS account.
Bringing it into Shared Minds and getting it working again — 3 November, 21:20 to 22:00
My words
- 21:30 Can we work on the stripping it back down to the basic stuff and getting rid of most of the prompting? Another thing I noticed is that the prompting is missing. The prompt edit is missing from the, I can't actually edit well from the prompting in the, on the web interface. So let's get that fixed too.
- 21:36 Nothing is working.
- 21:36 It's visible, it's loading on the page, the merge works fine, the page loads, but it's not viewing my eyes or looking at the, I can't type any text in. Also, get rid of the play button, please. I'm tired of that. You can spawn an agent for getting rid of the play button and then bring that one back in when the change is done.
- 21:48 check out where we're at right now, and then, I mean, let's work from there, because I messed some stuff up.
- 21:57 the new stuff needs to include the old stuff. So like, here's the outcome of what I just got.
- 22:01 How many servers do I have here? This is crazy. I feel like I'm always adding another one. There are like two installed on VS Code, and then there's also the one that this is running.
What Claude did
Moved to the Shared Minds repo (Blink/, branch worktree-blink-import):
a8731d5Brought Blink over from the website without the password lock.bf79a5aCut the prompting back to basics. The prompt boxes now take spaces, because the Space-to-swap shortcut had been swallowing them.53ef443Removed the brainretch play button (done by a subagent).- “Nothing works” had two causes.
glyphs.jsandcursive.jshad been deleted, and one missing ES module stops the whole page. VS Code Live Preview also returns 401 onlocalhost:3000module imports. The fix was Live Server at127.0.0.1:5500in Chrome. f2b6b52Each new picture keeps the last one and adds what's new, so the fisherman stays when the bear arrives.
Pictures
The fishing story that prompted “the new stuff needs to include the old stuff”: the fisherman, then the next picture, which dropped him.
The progress indicator, five tries — 3 November, 22:00 to 22:50
My words
- 22:03 I also need, like, some kind of indicator where, Maybe the text that you're speaking turns into like a loading bar and then when you blink, it pops or something like that or it's spiraling out and after first, When it blinks, it pops.
- 22:08 So as we're going, please put these GIFs and stuff into the media file for my blog for this on Obsidian. I'm taking notes in this thing called, the project is called Blink in Obsidian. So the folder is called, itp shared minds blink do this with a subagent after every test you do
- 22:10 Please spawn a subagent to change it from a GIF. We don't want a GIF. We want something that's web compatible and lightweight.
- 22:13 Let's get rid of the text just continuing on the screen. I want to just see the first, yeah, it's actually all pretty good, but the text cannot be over the top of the picture. So maybe there should be like a text box and then like, something. Can we give me a couple options?
- 22:15 I want the text to disappear. Like, I want it to, like, after the first one, there should be this surprise where it curls up and then flies up into the picture, and then after that, there's no more. Well, actually, we should keep the user prompting for more, so we should have an animation probably do the same thing it did previously in the... probably do the same thing it did previously with the let's go picture to this side of the text on the column to the left.
- 22:24 text should not be on the top. It should be where you had it before. It just starts coming in from the side like a paragraph that goes on and on and on and on.
- 22:26 Claude, you should just operate in the same Chrome preview that I'm using so that we can both see the same stuff. And I want you to continue watching it all the time. Like, spawn a subagent to continue watching it.
- 22:28 start the watcher, also the way I see it is paragraph to the left and image to the right
- 22:32 Can we try a loading bar?
- 22:42 We need to go back to the prompt from the storybook with the bear thing. And we need to get rid of the loading bar. Like, maybe we can have like an abstract loading bar, but the text should not be a loading bar. It should be just like the text, instead of spiraling up, it all flies off letter by letter into the image. And then blinking will resummon the image. It flies off once the paragraph is done. So that's the indicator that the information is going in.
- 22:47 You need to imagine the words all dumping out onto the page. Get rid of the visual progress bar, get rid of all this stuff. Just have the words get sucked into the center of the picture.
- 22:48 like someone is filling up a bucket with the paragraph, it goes down and down and down and down and down and down and down. And then when the new image is ready, it all dumps out and goes into the picture. And then when you blink, it changes. Also, I don't know if we have some retarded sepia tone, but get rid of that too. It should be clear crisp black and white, and the prompt should reflect that
- 22:54 this outcome is amazing, write a summary of our work and put it my obsidian. agent 1 summary
What Claude did
ce6adc0Try 1: the words spiral while the picture is made and pop on the blink.18ecddbTry 2: the words sit in a band under the picture and fly into it on the blink.23b9007Try 3: paragraph on the left, picture on the right. This layout stayed.a1fb4dbTry 4: a loading bar with the words in it (too small to read).d9b099fTry 5: the paragraph flies into the picture letter by letter.c2ed06bThe one that stuck: the paragraph fills like a bucket and pours into the picture when it's ready. The prompt went to crisp two-tone black ink on white. The sepia came from the old “fuzzy… storybook” wording, not the page.- Fixed a bug along the way: words said while a picture was being made never reached the next prompt.
- Ran a watcher subagent on the shared Chrome tab from 22:30 to 22:59. It took 33 screenshots, which sit between my spoken lines in my voice log.
- Saved each test as a small MP4 (about 100 KB, against 1.7 MB for a GIF).
Pictures
The tries, in order (there's no recording of try 3, the layout):
The bucket pour:
Prompt tests (the story kept, crisp black and white, a vignette):
What the watcher caught: the six screenshots with a real picture in them.
Saving the story, soft edges, publishing — 3 November, 23:00 to 23:42
My words
- 23:01 Can you actually put the screenshots in there in between my voice so we can get a good idea of what it was saying while I was, what I was seeing while I was talking?
- 23:12 does this page save data in a local json?
- 23:16 let's get a JSON that can I can save in the browser. I want to use JSON to save it in the browser. So everyone can continue the story on their own time.
- 23:18 I'm finishing up my thing for Shared Minds for the assignment time. The title is Blink. We are working in the Shared Minds development folder. What I want to do is export the project Blink over into my website. I want to be able to access it from ccfrost.com/blink. Then begin to draft a blog post. The three headings are, like all my Shared Minds, reading, writing, making.
- 23:20 can we save the picture too or no
- 23:31 Please also make it so that the image doesn't generate with edges that ruin the continuity between the image and the text on the side.
- 23:42 push thest changes to my website
What Claude did
abbf81eEach visitor's story is saved as JSON in their own browser.6949f4aThe story's pictures are saved in the browser too.9766d76Pictures fade into the page instead of ending in a hard edge.- Website
df2e593Put Blink at/blinkand drafted this page with Reading, Writing and Making headings. It's also linked from the Shared Minds index and the blog.
Pictures
Hard edge against faded edge:
GPT + Claude review — 4 November
My words
- 00:04 after the blink project website migrations finishes use codex to review the changes to my website. codex should look at the code base, and you two should work out my intentions from the transcripts in my obsidian to propose any final changes. then work the code over for bugs and security, remmbering that its okay for it to use the itp proxy as much as it wants. finally, when you and gpt are satasfied, merge the branch, update the dev log in obsidian and the website as gpt + claude review. adhere better to my formatting for the website for example
- 07:57 continue, make the mic start off
What GPT + Claude did
Claude and GPT (through the Codex CLI) each reviewed the website branch on their own, read my voice log and the prompts above for what Blink is meant to do, then compared notes and fixed what they agreed on:
- The mic starts off. Press the round button to talk; typing works either way.
- No cap on pictures. A 40-picture limit per visit, there to save the class proxy's credits, used to stop the pictures without saying so.
- A request to the proxy that never answers no longer stops Blink for good: every call and every picture load has a deadline.
- Words said while a picture is being made stay where they are while the others pour into it, then the paragraph eases up to the top. They used to jump to the top and land on the pouring words.
- A new picture crossfades over the old one instead of fading in from blank white.
- A failed picture says so in the type box, and the story only moves on once the picture exists, so the retry doesn't send the same words twice.
- Saved stories: a reload keeps the picture still waiting for a blink (it used to drop it from the save), a picture whose link has expired is redrawn from its own prompt, an older save can't delete a newer picture from the cache, saving doesn't wait for you to stop talking, words typed while a story is coming back are kept, a picture that can't come back (offline, say) stays in the save for next time, and “new story” clears the pictures too.
- Pictures from any of Replicate's file hosts are kept, the mic can't end up running twice after a quick off and on, and new speech after the mic restarts isn't mistaken for an echo of what was just said.
- Personal details quoted in a code comment were taken out, and the privacy page now lists Blink.
- This page: the journal sits in the same text column as the rest (it had been wider), the prompts are numbered lists like the Droplet post, the videos play as they scroll into view, and the fishing pictures are described as what prompted the request.
Checked in a headless Chrome against the class proxy (21 checks): the mic starting off, the pour, the crossfade, a story with two pictures coming back after a reload, a picture whose file is gone coming back from its kept copy, an expired picture redrawn, words typed mid-restore kept, and “new story”.
The paragraph dumps, a text-only Esc panel, “tell me a story” — 4 November
My words
- 09:50 lets bring the blink code thats on the website back over to the shared minds folder
- 09:52 bring the changes we made in the blink website back into the shared minds folder
- 10:04 when the text dumps out, I want all the text to go, not just whats being shown. trick the user. after it dumps, the paragraph should be empty. additionally, currently it spirals line by line, I want it to dump all at once
- 10:09 get rid of the droplet controls for the esc tab on blink, text controls are fine
- 10:23 bring it to main
- 10:27 lets make a startup text appear in the style of the rest of the words that says tell me a story, it should go across the whole page. at the same time, lets center the text box and recording in a special section just below the image
- 13:27 please import the latest version of my blink from shared minds, then pull the latest context from obsidian, update my page and the expereince, show me a preview and push
- 13:34 yes, but show me before you push it, I want to test it one more time
- 13:36 this bar needs to extend across the whole bottom of the screen
What Claude did
e85b5e9,d3ab0dfBrought the review's fixes from the website back into the Shared Minds repo'sBlink/.e4db523The whole paragraph dumps into the picture at once, not line by line, and not just the words that went into it. The bucket is left empty; words said since the picture started still go into the next one, they just don't stay on screen.ffadebcThe Esc panel keeps only the text controls (the image prompts). The Droplet sliders are gone.8e16c2cA new story opens with “tell me a story” across the whole page, in the paragraph's own cursive, a word at a time. The first word said pours it into the picture. A saved story coming back skips it. The type box and record button moved into their own band under the picture.- Copied these into
/blink, then made the band's line run across the whole bottom of the screen, with the type box centred across it and the paragraph stopping above it.
Pictures
The opener:
Still open
- The bucket pour still hasn't been watched with real speech and a real blink. The review's checks typed the story and pressed Space.
- On a narrow phone screen a long word can run past the column into the picture, and the words don't reflow when the window is resized.
- The full-width band is only on the website's
/blinkso far, not in the Shared Minds repo'sBlink/.