Nick Bryant

Software.
Systems.
Worlds.

I build things from the first idea to the working product.
Explore the work ↘

Conceptual terrain study of an imagined generative world

01 / An engineering atlas

02Interactive work

Generative worlds

Games, authoring systems, and small experiments where procedural structure meets deliberate worldbuilding.

Conceptual landscape cross-section from desert mesas to alpine peaks
Concept study / Terrain, rules, inhabitation
The Lower Worlds project screenshot

01 / Field study

The Lower Worlds

Generative authoring · TypeScript / React / Three.js

An experimental generative-authoring system in TypeScript, React, and Three.js. Models and people define the world, schemas validate and version it, and deterministic rules run the game while player progress stays private.

Explore the architecture

The authoring stack separates intent, validated schema, versioned world definitions, and deterministic runtime state so generated content can remain inspectable.

System plate / 04

The Lower Worlds · architecture study

Illustrative assembly

An exploded isometric illustration of software architecture showing the intent, schema, world, and runtime layers of The Lower Worlds software architecture.

World. Versioned, reusable definitions preserve a coherent world across play.

Blind Magus project screenshot

03 / Field study

Blind Magus

Released action game · Independent

A released action game built around combining spells into new effects.

The Lower Worlds: Awakening project screenshot

06 / Field study

The Lower Worlds: Awakening

Creator and engineer · Playable prototype

A third-person dungeon adventure in Godot 4.7: prepare at Highbridge, explore the ruins below, and choose when to return to defend the garrison. Typed GDScript, physical puzzles, persistent progression, and rendered gameplay verification.

Chapter 02 / Applied intelligence

Agents &
systems

Local-first tools that make model work inspectable, bounded, and useful in the physical or commercial world.

Conceptual study of a speculative workshop machine
Conceptual study / Not actual hardware
AI Robot Workshop project screenshot

01 / Working system

AI Robot Workshop

Open source · Local-first agent workflow

Turns agent conversations into inspectable plans, firmware, parts records, bounded models, and bench observations. The documented hardware routes remain unbuilt.

Treasure Hunter project screenshot

02 / Working system

Treasure Hunter

Creator and engineer · Local agent system

A local, chat-operated marketplace agent that values every collected item, persists evidence and checkpoints, and explains its ranked results in a live dashboard.

Chapter 03 / Field notes

Writing from the work

Conceptual editorial study of embossed terrain and printing plates
Concept study / Ideas made durable
  1. Give Agents Lives, Not Just Jobs

    A1

    Give Agents Lives, Not Just Jobs

    Why I think ongoing pursuits, embodied experience, and a limited point of view can give agents something more interesting to say.

  2. A Small Model With a World Around It

    A2

    A Small Model With a World Around It

    What my local-model companion experiments taught me about structured output, useful conversation, and the architecture around a model.

  3. Human–Agent Interaction Is More Than Chat

    A3

    Human–Agent Interaction Is More Than Chat

    Presence, silence, interruption, and selective memory are part of the interface when an agent has a continuing life.

  4. Digital Twins Need More Than Your Chat History

    A4

    Digital Twins Need More Than Your Chat History

    A useful twin needs a history of changing views, explicit authority, and a distinction between representing someone and becoming its own agent.

  5. Marketing Is a World Agents Can Work In

    A5

    Marketing Is a World Agents Can Work In

    Lessons from SFV and SMBIN: content, audiences, campaigns, and feedback form an environment an agent can understand.

  6. Treasure Hunter

    01

    Treasure Hunter

    Building an agent that values every item and exposes its evidence, uncertainty, and resumable state.

  7. AI Robot Workshop

    02

    AI Robot Workshop

    From a plausible agent answer to persistent project files, explicit evidence, and a buildable path.

  8. Fractal Authoring

    03

    Fractal Authoring

    Building The Lower Worlds Online, and a world that can keep becoming more specific.

  9. Building procedural environments in Valenfeld

    04

    Building procedural environments in Valenfeld

    A practical look at shaping generated terrain into a world with authored intent.

  10. The Transformer Is the Transistor

    05

    The Transformer Is the Transistor

    A thesis on AI as a building block, and the verification and coordination infrastructure models need around them.

  11. The Lower Worlds: Awakening

    06

    The Lower Worlds: Awakening

    Building a home worth returning to: a playable Godot adventure, with in-engine screenshots and source.

Chapter 04 / About

Builder,
end to end.

Portrait of Nick Bryant

I’ve spent most of my career taking an idea and building the whole thing: the prototype, the product, and the team. Web, mobile, games, AR/VR, AI—I like learning what a hard problem needs and getting it working.

Right now I’m deep into agentic programming and generative worlds, trying to build things that weren’t practical a few years ago.

Denver / Boulder

Selected work

ARCOS / VN.AI

IP workflows · Next.js / Supabase / MongoDB / Redis / AWS

I led product engineering for IP management, permitted-use workflows, and content analysis. We connected roughly twenty model integrations and supported product pilots across the application and cloud stack.

Selected work

Procurement Sciences

B2B software · MERN / Python / FastAPI

I rebuilt an early Rails prototype as a MERN and Python/FastAPI product. I implemented the application, managed the engineering team, and hired the incoming CTO before the handoff.

Current · advisory

Investing systems

Investing / syndication · Co-founder, now advisory

I built investing and syndication software, AI-assisted underwriting workflows, investor reporting, and marketing automation for SMB Investor Network and Search Fund Ventures. My current role is passive advisory work.

2015–2020

Interesting Inventions

Consumer apps & games · Technical co-founder

Built and launched 5+ consumer applications through a holding-company portfolio, reaching nine-figure revenue scale.

Full career on the resume ↗
A Late Robot Command Can Be Correct And Still Be Wrong
A Late Robot Command Can Be Correct And Still Be Wrong project screenshot
All field notes

Published field note · Research note

· 5 min read

A late robot command can be correct and still be wrong

Reliable delivery preserves bytes, not relevance; physical commands need source time, sequence, epoch, validity, and local admission before execution.

Relay, a fictional mobile manipulator in a workshop tool crib, sees the blue torque wrench at the front of shelf B. From observation S880, its planner generates command C42: move the wrist into the admitted pre-grasp region. The command is delayed in a reliable queue. During the delay, an operator moves the wrench and Relay’s application computer restarts. C42 finally arrives intact. Its target is plausible, its sender is authenticated, and its bytes are exactly what the producer sent. Executing it would still be wrong.

The missing property is not semantic correctness but temporal validity: permission for this command to influence this robot state during a bounded interval. That permission depends on facts the target coordinates cannot carry by themselves. Relay needs the source observation’s production time and sequence, the system epoch in which the command was created, an expiry or validity horizon, the goal and cancellation identity, and the physical envelope the lowest local controller will enforce.

Delayed command rejected after a robot epoch changeRead the sequence left to right. Command C42 is produced from state S880 in epoch 4, then crosses a wide hatched delay region. During the delay, a vertical coral boundary marks a restart and the transition to epoch 5. C42 arrives at a local admission gate, where an explicit EPOCH 4 NOT EQUAL TO 5 check routes it downward to REJECT / NO ACTUATOR EFFECT. In parallel, newer command C43 from state S932 carries epoch 5 and an unexpired validity horizon; it passes the same gate and proceeds to a lime SAFE TARGET box. The diagram distinguishes successful transport from local permission to act.DELIVERY SUCCEEDS / ADMISSION REJECTSSTATE S880 / EPOCH 4COMMAND C42DELAYRELIABLE RETRYRESTART / EPOCH 5LOCALADMISSIONREJECT C42EPOCH 4 ≠ 5 / NO EFFECTSTATE S932 / EPOCH 5NEW C43SAFE TARGET PROCEEDSCURRENT EPOCH + VALIDITY
A reliably delivered command crosses a delay and restart boundary, but the local admission gate rejects its old epoch while a newer valid target proceeds.

An epoch is an identifier that changes when restart, reconfiguration, or an authority reset invalidates work from an earlier system instance. After Relay restarts from epoch 4 into epoch 5, C42 cannot regain authority merely because its delivery was retried. A local admission gate is the component beside execution that compares the command with current time, epoch, goal state, protective state, source age, and motion limits. For C42, the first mismatch is enough: epoch 4 is not epoch 5, so the gate records a rejection and produces no actuator effect. New command C43, generated from current state S932 in epoch 5, can proceed through the same checks.

Reliability is a transport property

ROS 2 exposes the distinction in its Quality of Service settings. History and depth govern queued samples; reliability governs whether delivery is best effort or retried; durability governs availability to late joiners; deadline, lifespan, and liveliness express different timing and availability expectations. Choosing reliable delivery does not by itself bound end-to-end latency or prove that the delivered command still describes the state in front of the robot.

Lifespan can help discard old messages in transport, but semantic validity may be narrower. A command can arrive within a generic transport lifespan after the wrench moved, after its goal was cancelled, or after the controller’s authority epoch changed. Conversely, an old inventory observation might remain valid for an asynchronous report even though it is unusable for collision response. The consumer that knows the physical use must make the final admission decision.

The ros2_control Controller Manager documentation describes a periodic read-update-write loop, update-rate configuration, scheduling and memory settings, overrun handling, and diagnostics. Those mechanisms provide a concrete place to observe timing and apply controller logic. They do not guarantee that arbitrary hardware, kernels, drivers, or application code meet a deadline, and they do not define Relay’s complete stale-command protocol.

Asynchronous learned policies make the issue easier to trigger, not unique to AI. The SmolVLA preprint decouples chunk generation from execution so a robot can keep executing while the next chunk is produced. That supports concurrency between model work and motion. It does not establish a production protocol for rejecting chunks derived from old observations; Relay’s source sequence, epoch, validity, and admission rules are book synthesis layered around the mechanism.

A credible countercase is a single-process controller over a private memory channel where commands are computed and consumed synchronously inside one measured period. Explicit epochs and network-style sequence fields may add no value if restart atomically clears all pending work and the controller can prove that no stale producer survives. Even then, the invariant still exists: a command is admitted only for the state and cycle that produced it. The implementation has encoded validity structurally rather than in a message.

What this does not prove

This note does not prove that ROS 2 reliable QoS is unsuitable for control, that timestamps alone make motion safe, or that rejecting stale commands defines a safe fallback. Clock synchronization, wraparound, queue bounds, cancellation races, restart persistence, and the physical protective response each need their own design and test. The bounded claim is simpler: successful delivery preserves a proposal; only local admission can grant current physical authority.

What field would let your lowest local controller reject a command that is semantically plausible but no longer valid for the state in front of it?

Open question

What I'm testing

What field would let your lowest local controller reject a command that is semantically plausible but no longer valid for the state in front of it?

Evidence boundary

Sources and boundaries

A linked source supports only its named role below. This note connects and tests ideas; the note itself is not evidence.

  • official spec
    ROS 2 Quality of Service settings

    Documents history, depth, reliability, durability, deadline, lifespan, and liveliness policies; reliable delivery alone does not guarantee bounded latency or current semantic validity.

  • official spec
    ros2_control Controller Manager

    Documents the read-update-write control loop and real-time settings for a named ROS 2 stack; configuration is not a complete deadline or safety guarantee.

  • frontier preprint
    SmolVLA preprint

    Provides an asynchronous chunk generation/execution example; the preprint does not specify or validate a production stale-command admission protocol.

Back to all field notes