Selected work

2023–26IndependentANIMA, a live biomimicry agent and workbench

Biomimicry that cites its work

ANIMA takes an engineering problem, finds organisms that solve the same function, checks whether the strategy transfers to your scale and sizes it with real physics. An autonomous agent plans the research, runs tools in parallel, delegates to subagents and audits its own citations before it answers.

Outcome
A working agent on a curated knowledge graph: every number is computed or cited, and all 314 cited DOIs verify against Crossref
Role
Designer and sole engineer, from the knowledge graph and retrieval to the agent runtime and the interface
Stack
TypeScript · Node · React · GraphRAG · BM25 · BGE embeddings · Personalized PageRank · Liquid LFM3-Omni · Liquid d1 · llama.cpp · transformers.js · MCP · Docker · Crossref · Europe PMC · GBIF
Links
curated biological strategies
239
curated biological strategies
cited DOIs, all verified against Crossref
314
cited DOIs, all verified against Crossref
physics calculators with cited assumptions
21
physics calculators with cited assumptions
subagents that can run in parallel
4
subagents that can run in parallel

The problem

Biomimicry is full of good stories and bad numbers. Ask a general chatbot how a shark’s skin reduces drag and you get a confident paragraph, an invented percentage and a DOI that does not exist. My first version of ANIMA did the same, so I rebuilt it around one rule: if a number cannot be computed or traced to a checked source, it does not appear.

The agent

ANIMA works the way a coding agent works inside a repository, with the project workspace as its repo. It keeps a visible plan for multi-step work and runs independent tool calls at the same time. It can hand sub-questions to up to four subagents with their own context and restricted tools: a researcher, a critic that red-teams a concept, and an engineer that sizes it. It computes instead of estimating, in a sandboxed JavaScript runtime with no host access and a time limit. It writes durable work to the project: briefs, research logs, concept boards and printable parts, with a project memory file injected into every turn.

Before it answers, it audits its own draft: labels that do not exist, DOIs it never retrieved and quantitative sentences with no source. Then it revises automatically. Consequential actions such as deleting files go through an approval card. Everything streams as it happens, from text and tool calls to subagent activity and file diffs. Playbooks run whole methods with one command: a full design spiral, biological scouting, a TRIZ contradiction pass, a red team, a literature review or an Ashby material selection.

The ANIMA agent answering a design question, with numbered sources and a plan beside the conversation

The agent mid-answer: parallel tool calls, a self-check that revised the draft, and every claim tied to a numbered source

  • The strategy library with filters for function and evidence level

    Strategy library, filtered by function and evidence level

  • A fluid properties calculator with its equations and references

    Calculators state their equations, assumptions and sources

  • The Studio view asking what problem you are trying to solve

    Studio turns a challenge into functions and ranked strategies

Screens from the live ANIMA Space on Hugging Face.

Retrieval that explains itself

The curated knowledge is a typed graph: 239 strategies, 98 mechanisms, 218 organisms, 40 materials and 20 environments, joined by 3,391 weighted edges across 19 relation types. Retrieval runs in three stages. BM25 and embedding seeds come first, weighted by node type. Personalized PageRank then spreads relevance along the links. Finally, every hit comes back with the path that explains it, such as boat hull drag → turbulent skin friction → shark riblets → riblet calculator. Live sources fill the gaps: Europe PMC, Crossref, arXiv, GBIF, iNaturalist, PubChem, UniProt and the Protein Data Bank. A field a source did not return is left blank, not guessed.

Small models, used carefully

The default model is Liquid’s LFM3-Omni-2B, which takes text, images and audio. It runs behind llama.cpp, Ollama or LM Studio, or in-process with no server at all. Small models get a deferred tool profile: ten core tools load first, and a search tool activates the rest on demand. Tool calls in the model’s own format are parsed and coerced against each schema. A second small model, Liquid’s d1, answers typed questions in one pass with calibrated probabilities. It judges whether each cited sentence is actually supported by its source, reranks graph hits and routes problems to functions. The whole workbench also runs with no language model at all, as a tools-only mode, and it ships as an MCP server and a Docker image.

From strategy to part

Every strategy can become a part. Eight geometry generators produce STL and OpenSCAD files sized by the calculators, ready for a 3D printer.

Loading geometry

Drag to turn · arrow keys work too

Organism
Fast-swimming sharks such as the shortfin mako
Mechanism
Fine ribs aligned with the flow hold turbulent eddies away from the surface and lower skin friction
Evidence
Thin blade riblets reduced drag by up to 9.9% in an oil channel with adjustable geometry
Source
Bechert et al., Journal of Fluid Mechanics, 1997 doi:10.1017/S0022112096004673
Generated part
Triangular riblet coupon, 1 mm spacing, 40 × 80 mm
Meshes produced by ANIMA’s geometry generators and printable as STL. Each DOI was verified against Crossref.

Where it came from

ANIMA started in 2023 as an early biomimicry language model, a Mistral 7B fine-tune that has been downloaded 67k times. The workbench is what I learned from watching that model make things up.

esc

↑↓ to move ↵ to open tab to ask the model

Specimen

No. 250,001

Planted
Season
Seed
Branches

I have planted more than 250,000 trees, most of them by hand on restoration crews. This one is yours.

STL, 70 mm tall on a 32 mm base. Every branch is at least 1.6 mm thick and within 45° of vertical, so it is designed to print upright without supports.