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 ↗
Treasure Hunter
Treasure Hunter project screenshot

Nick Bryant · October 21, 2026 · 8 min read

Treasure Hunter: Building an Agent That Shows Its Work

How I built a local marketplace agent around evidence types, value-every-item coverage, immutable checkpoints, and a dashboard that keeps uncertainty visible.

System pathA decision pipeline with a durable evidence trail
  1. 01
    RequestChat or CLI sets sources, place, query, and bound.
  2. 02
    DiscoverDedicated browser profiles collect marketplace listings.
  3. 03
    Value allEvery item gets a brief valuation attempt and uncertainty.
  4. 04
    PersistMongoDB keeps immutable appraisals and resumable checkpoints.
  5. 05
    ExplainThe dashboard ranks results and exposes evidence and limits.

Browser work can stop; persisted state remains available for inspection and resume.

Treasure Hunter started with a practical question: could an agent scan local marketplaces, estimate resale value, and leave behind enough evidence for me to judge every result myself?

The last clause became the real project. Finding listings is easy to demonstrate. Producing a trustworthy decision surface is harder. A useful system has to preserve what it saw, distinguish observations from estimates, expose uncertainty, and remain inspectable after an automated run stops.

I built Treasure Hunter as a local, chat-operated proof of concept with a CLI and a live dashboard. It looks for possible Facebook Marketplace and Craigslist resale candidates. It does not message sellers, buy items, prove demand, or guarantee profit. Its job is narrower: collect bounded evidence, attempt a quick valuation for every item, and make the reasoning visible.

The architecture follows the decision

The flow begins in chat or the CLI. A request defines the sources, location, query, and item limit. Marketplace discovery then runs in dedicated browser profiles rather than my personal browser session. Each collected listing enters a quick valuation pass, including items that look unpromising or have incomplete identities.

Those results are stored as immutable appraisal records and job checkpoints in MongoDB. The dashboard projects that history into a ranked view with the asking price, estimated resale range, confidence, evidence, unknowns, appraisal ID, and any access blocker.

The implementation is split along those boundaries. hunt.ts coordinates collection and valuation. runtime.ts runs the model work within an explicit local process. live-results.ts turns persisted records into the dashboard’s rows and ranking explanation.

That separation matters. The dashboard is not a transient narration of what the agent thinks it did. It is a view over durable records.

Evidence has types

A price-shaped number can mean several different things. Treasure Hunter separates asking, sold, inferred, and reference evidence because collapsing them would create false certainty.

An asking price is a seller’s current request, not proof of market value. A confirmed sale is stronger transaction evidence, though its date, geography, condition, and channel can still make it a poor comparison. Reference evidence—such as retail pricing or a related product—can anchor an estimate without establishing local used value. An inferred resale range is the model’s conclusion from those inputs, not an observed sale.

When identity, condition, cost, or comparison quality is missing, the value remains unknown. Uncertainty is not zero. A mixed plant listing, for example, should not acquire a zero-dollar resale value merely because the available description cannot support a defensible estimate.

The same discipline applies to confidence. A low-confidence estimate can still be useful if the interface keeps it visibly separate from observed facts. Refusing to estimate everything would make the system inert; disguising a guess as a comparable would make it misleading. The useful middle is a labelled estimate with its evidence and unknowns attached.

Discount is not ROI

The dashboard also keeps discount distinct from return on investment. Discount answers how far the asking price sits below an estimated resale value: 1 - ask / resale. ROI answers how estimated profit compares with the purchase price after known costs.

Those measures can diverge. A large discount does not account for parts, fees, transport, storage, or labor. Treasure Hunter’s opportunity score uses conservative cash profit, ROI, and estimated sellability, then prints the scoring basis beside the result. If required costs are unknown, the item can remain unrated. The rank is a transparent heuristic, not a trained prediction or a promise that an item will sell.

The failure was optimizing too early

The first serious design failure was straightforward: deep research starved valuation coverage. An early version screened listings and spent expensive research effort on a small subset. The harness could look sophisticated while most collected items never received the basic output the user had requested.

I corrected the default flow to value every item briefly. Automatic hunts no longer promote candidates into deep research. A blocked source records its access problem without suppressing independent work on another source. Partial results are persisted as they arrive.

This changed the product from a selective research demo into a volume-first decision tool. Depth remains available as an explicit later choice, but breadth is now the default contract.

Stop and resume are part of correctness

Agent runs encounter browser logins, rate limits, model failures, and ordinary interruption. Treasure Hunter treats those conditions as state transitions rather than reasons to discard the run.

A stop request is durable. Resume continues from saved listing, screening, and valuation checkpoints instead of inventing a fresh run. Each job is bounded by its recorded configuration, and listings and appraisals keep stable identifiers. This makes state reproducible enough to inspect: I can see what was requested, what completed, what remains pending, and which appraisal revision supports a row.

The immutable record model also prevents enrichment from silently rewriting history. New notes or evidence become a new appraisal revision. The dashboard can select the current revision while the earlier basis remains available.

What the real runs actually proved

The October 18 volume pilot covered exactly six real listings: three from Facebook Marketplace and three from Craigslist. It stored six appraisals, five numeric resale estimates, and 25 evidence entries. One listing stayed unknown because its identity and item-level pricing were insufficient.

That run validated the integration path across both sources and the value-every-item correction. It did not validate throughput, profitability, or demand. It was not a 100-item benchmark, and there were no recorded Treasure Hunter sales in the reviewed dataset. The candidate rankings therefore remain hypotheses to inspect, not outcomes.

A subsequent volume run extended this to 114 distinct listings: 60 Craigslist and 54 Facebook. All 114 had saved appraisals; 113 had numeric resale ranges. I rechecked those persisted results for this article. Facebook remained partial because its radius setting reset to 40 miles, making the final requested filter unverifiable. Stopping was the correct result.

The larger sample exposed the next limitation: evidence quality. It contained 450 evidence entries, not 450 independent comparisons. Confidence was low for 100 appraisals and medium for 14. Review corrected placeholder prices, per-item versus bundle comparisons, and a currency mismatch; some model classifications still warranted further scrutiny. With no recorded sales, the result demonstrates coverage and inspectability rather than validated returns.

Historical records can improve later work without becoming “learning” in the machine-learning sense. Treasure Hunter may reuse a fresh appraisal for the same unchanged listing under a deterministic policy, or supply older records as dated context. That is traceable retrieval with freshness rules—not reinforcement learning, model training, or evidence that the agent gets profitable through experience.

Two ways to inspect it

The hosted demo uses synthetic data so the interface can be explored without marketplace accounts or a local database. A live hunt is deliberately local: it requires Node.js, Chrome, a signed-in Codex subscription, and MongoDB. Authentication checkpoints still require a person; the system does not copy personal cookies or bypass access controls.

That boundary is part of showing the work. The goal is an agent whose collection, estimates, interruptions, and limits remain visible enough for a person to make the next decision.

Explore the source repository, inspect the pilot record, or open the synthetic-data demo.