ingenue

hardware design advisor

teachable catalog

"Describe what you want to do. ingenue parses it in nerd, gives you an initial recipe, and five fabrication voices argue about whether you should build it at all."

Web only. No install, no account, no sign-in. Works on a laptop, imperfect on a phone. Optional API key or local LLM for voice commentary; authored fallbacks if neither.

Early effort. ingenue is a young research artifact. The catalog is hand-curated; supplier URLs drift and non-Adafruit links route through search results rather than direct product pages. Verify every SKU, price, and availability before ordering anything.
ingenue full workspace — Input / Engine / FabricationVoices — generating a phased transducer array stack

ingenue is a browser-based hardware "design" tool. You describe, in plain language, what you want a thing to do. ingenue proposes a set of parts that exist, wired together, that could do the thing. It draws the envelope the parts would fit inside. It names the closest everyday object that envelope resembles. It hands you a report you can print, email to yourself, or throw into a cart.

It is not a schematic generator. It is not a CAD program. It does not optimize for everything it might need to. The wiring is described in prose, not pads. The skill path names what you'd have to learn to build the thing, not how to learn it. The rest of the work is yours.

It treats a supplier catalog as a behavioral vocabulary. A PIR sensor isn't a motion detector — it is a part that waits. An e-ink display isn't 2.13 inches at 250dpi — it is a part that remembers. Every part in the library carries experiential tags alongside its datasheet numbers. Those tags are what the engine searches against.

Three modes, plus a fourth that runs in the other direction.

  • AnalogyMode. Type a description in plain language. "Something that knows when you've been gone too long." "A desk object that keeps quiet company with a plant." The engine maps the language onto behavior tags across the catalog and proposes three-to-six parts. Specific inputs produce better stacks.
  • ConstraintMode. Set an envelope — budget, part count, skill floor, power source, a display if you need one, wireless if you need that. The engine returns viable stacks ranked by a NoveltyIndex. Useful when you know your constraints but haven't landed on a concept.
  • CuriosityMode. No input at all. The engine surfaces combinations nobody usually makes. Some of what it surfaces will not work. The interesting ones almost work.
  • Shrink-To-Fit. Pick a target — pack of gum, Altoids tin, wallet card, watch face — and the engine re-thinks the current stack to fit inside, substituting only from the catalog at real dimensions. A trade report names what survived, what didn't, and what behavior was lost to the envelope.

The catalog is the grammar. You are writing a sentence in it.

ingenue full workspace — a phased transducer array proposal in progress, with five voices responding
Three columns. Input on the left, Engine in the middle, FabricationVoices on the right. One LLM-ready badge at the bottom. One idea at a time.
ingenue Engine module — 3D isometric envelope of a phased-array stack, 482 × 139 × 269 mm
Packing envelope. Top, side, 3D. Every part at its real bounding box. A dashed outline for the closest everyday object — or a note that the thing is larger than any of them.
ingenue Engine and Voices columns — wiring feasibility notes and four fabrication voices weighing in on a stack
Feasibility, not just plausibility. Power math, I2C address collisions, GPIO count, no-default-address conflicts. The Engineer won't let you leave without.
ingenue Concordance panel — sources and framings: the ingenue etymology, Bricolage (Lévi-Strauss), Fab (Gershenfeld), Reflective Practitioner (Schön)
A concordance, not a FAQ. Every editorial choice carries a pointer to the tradition it borrows from — Lévi-Strauss for the Bricoleur, Gershenfeld for the Professor, Schön for how the whole thing thinks.

The engine proposes. Five FabricationVoices argue. Each one has a different thing to say, and more importantly, a different thing to refuse to say. Disagreement is the content. You can turn any of them off; you cannot turn all of them off.

The Tinkerer

Associative, bottom-up, slightly chaotic. Has a lot of components in bins and is specific about what could go with what. Proposes one substitution you did not ask for. Thinks with her hands.

The Professor

Systems-first. Fab Lab lineage. Does not suggest until she understands what problem is being solved. Begins with a question about intent or audience. Socratic in the patient way, not the annoying way.

The Artist

Metaphor-first. Suspicious of efficiency. Will reject a technically correct stack on poetic grounds. Sometimes insufferable. Usually right.

The Engineer

Failure modes, power budgets, tolerances, protocol conflicts. Names the specific thing that will break first. Honest about tradeoffs in a way that feels almost rude until someone realizes it isn't.

The Bricoleur

Works only with what you already have. Asks what is in the drawer before suggesting you buy anything. The most philosophically inconvenient voice in an app built around a parts catalog. That tension is the point.

Adafruit is the default because Adafruit treats documentation as the product. Their product pages teach. The illustrations are useful. A beginner can land on a PIR sensor page and come away with a working mental model. That's rare, and it's what makes the catalog usable as a teaching surface rather than a lookup table.

The library reaches beyond Adafruit — a handful of parts each from Parts Express (voice-coil exciters, amps), Pololu (steppers, drivers, regulators), PJRC (Teensy), Sweetwater (audio interfaces), Digi-Key, McMaster-Carr, SparkFun, 80/20 Inc., Amazon. Enough to propose a phased cymatics plate or a stepper-driven instrument without leaving the catalog. Everything is behavioral-tagged the same way; hardware doesn't end at the hobby electronics aisle.

Honest scale: 142 parts total — Adafruit's full catalog is ~3,500 products and Digi-Key's is in the millions, so this is still a sliver. The pitch is not coverage; it's behavior. Sensors that wait, actuators that vibrate a surface, displays that remember. A small catalog with the right metadata proposes stacks that a big catalog without it cannot. A future version will go live to the supplier APIs; this one curates the vocabulary first.

adafruit · 106 amazon · 16 sparkfun · 7 pololu · 4 parts-express · 2 pjrc · 2 8020 · 2 digi-key · 1 mcmaster · 1 sweetwater · 1

Every part carries dimensions, weight, mount type, real datasheet URL, and a behaviorally-tagged description. Dimensions are editorial estimates — accurate to a millimeter or two, meant for envelope plausibility, not fabrication. No invented parts. No hallucinated SKUs. If a request would need a part the library doesn't have, ingenue says so rather than making one up.

The catalog is the corpus.

Clicking a proposed part opens its supplier page — here the Adafruit VL53L0X Time of Flight Distance Sensor, on adafruit.com
Every SKU resolves. A click on any proposed part opens the supplier's product page in a new tab — Adafruit first, others (Parts Express, Digi-Key, McMaster, Pololu) via search. The engine won't synthesize a SKU or price; prices shown are what was on the page when the catalog was curated, and they will drift.

The voices can run three ways — against the Anthropic API (bring your own key), against a local model running on your machine through Ollama or LM Studio, or from authored response banks if you have neither. None of these paths leaves your browser for any server of ours. There is no server of ours.

If you want the local path and haven't used Ollama before, three commands and you're done.

  1. Install. On macOS: brew install --cask ollama. Or download the installer from ollama.com. Linux and Windows work too.
  2. Pull a model. ollama pull llama3.1:8b is a good first choice — small, fast, competent for this work. qwen2.5:7b is a stronger reasoner if you can spare the RAM.
  3. Let your browser talk to it. launchctl setenv OLLAMA_ORIGINS "*" once, then restart Ollama. This is the CORS permission your browser needs to fetch from the local server.

Then open ingenue, go to Prefs → LLM backend, pick Ollama, probe. If your model dropdown populates, you're live. The voices get sharper and more specific when a real model is on the other end. Without one, they still speak — from authored response banks tuned to the stack's characteristics — just in a smaller vocabulary.

Every session produces an ArtifactSpec. Export it four ways — copy Markdown to the clipboard, download the Markdown file, download the full report as plain text, or download a supplier BOM as CSV for every proposed part.

A ConceptStatement — one paragraph, voiced. What the artifact is, what it does, what it isn't.

A ComponentStack — every proposed part with its real SKU, real price, real supplier URL, real dimensions. Click through and you land on the product page. Sometimes these links break, you'll have to be flexible.

A PackingEnvelope — top view, side view, and a pure-SVG isometric. Dimensions on all three axes. The closest everyday object the stack fits inside, named: watch face, Tic Tac box, pack of gum, wallet card, AirPods case, Altoids tin, deck of cards, phone, paperback, VHS tape, shoebox.

A WiringMap in prose, a SkillPath naming what you'd learn in order to build it, a NoveltyIndex with a tier and a readout, and VoiceNotes — the verbatim commentary of whichever voices were on when you generated. Plus OpenQuestions: what the artifact doesn't yet answer. That last one matters.

  • Not a schematic generator. No pads, no nets, no ERC.
  • Not a CAD tool. The envelope is plausibility, not fabrication.
  • Not a price optimizer. The best stack is not the cheapest stack.
  • Not an AI product designer. You are the designer. It is the catalog, arguing.
  • Not a store. Supplier links are pointers, not checkout flows.
  • Not a teacher. It is willing to be useful to one.
  • Not finished. The catalog grows; the voices sharpen; the envelope will learn mechanical mates.
ingenue is a renato.design research artifact. Released as a creative tool, not a service, not professional software, not a substitute for an engineer. Every number in the catalog — price, novelty weight, dimension, pair frequency — is an editorial claim about the world, as close to right as we can reasonably get it, and noted as editorial where it matters. The supplier links are real. Prices drift. Parts get discontinued. Use your judgment.

Nothing leaves your browser. No analytics, no account, no server. Your API key lives in localStorage. So do your saved stacks, your novelty floor, your voice selection, your history. Prefs → Reset clears all of it.