# Steve Dekorte — Full Documentation
Hi, I'm a programmer interested in the intersection of technology and aesthetics. In the 1990s, I was drawn to this aspect of NeXT computers and worked with research groups and startups using them. Since then I've worked on a number of open source projects, the best known of which is the Io programming language. Lately, I've been working on STRVCT, a naked objects JavaScript framework for building client-side web apps. My current project is Undreamedof.ai, an AI-based interactive fiction game built with STRVCT.
See also: /llms.txt (curated index) and /sitemap.xml.
---
Source: /
Hi, I'm a programmer interested in the intersection of technology and aesthetics. In the 1990s, I was drawn to this aspect of [NeXT computers](https://www.computerhistory.org/tdih/october/12/) and worked with research groups and startups using them. Since then I've worked on a number of [open source projects](https://github.com/stevedekorte?tab=repositories&type=public), the best known of which is the [Io programming language](http://iolanguage.org/). Lately, I've been working on [STRVCT](https://strvct.net), a naked objects JavaScript framework for building client-side web apps. My current project is [Undreamedof.ai](https://undreamedof.ai), an AI-based interactive fiction game built with STRVCT.
[steve@dekorte.com](mailto:steve@dekorte.com)
- **Projects** — Current and past projects.
- **Personal** — Personal writing and reflections.
---
Source: /personal/
# Personal
Personal writing and reflections.
- **Perspectives** — Philosophical, ethical, political & economic positions.
- [Pinterest](https://www.pinterest.com/stevedekorte/) — Boards and visual bookmarks.
- [X](https://x.com/stevedekorte) — Posts and updates.
---
Source: /personal/perspectives/
# Perspectives
A working map of how I think about knowledge, minds, ethics, society, economics, and technological change.
## Method
These pages are an attempt to make my views explicit enough to examine, connect, and revise. The recurring method is simple: find the assumption hidden inside a question, remove it, and see what explanation remains.
I’m trying to find out what’s objectively true. Where I don’t yet have a solid argument, I sometimes share an intuition or preference as a clue about where to look next. I’ll try to make clear when I’m relying on intuition and when I’m on firmer ground.
**Replace binaries with dimensions.** Consciousness is not one thing a being either has or lacks; it is a bundle of partly independent capacities. Moral status likewise separates into the capacity to suffer, the ability to act, the rights a community grants, and the weight it assigns. Treating these as dimensions produces clearer questions.
**Name the level of the claim.** Something can be true and useful at one scale without being fundamental at every scale. The ground is flat enough for walking across town and round enough for crossing an ocean. Free will, personal identity, meaning, and rights can be real at the human level without existing as indivisible features of the underlying physics.
**Question the frame itself.** Some questions assume that there must be one correct viewpoint. When that assumption creates the puzzle, answering inside it only preserves the mistake. The better response is to identify the relevant frames and explain how the answer changes between them.
From there, I treat many apparent properties as things produced by relationships and processes rather than possessed in isolation. Meaning is generated by goal-directed creatures. Moral status is assigned by evaluating minds and institutions. Agreement often comes from agents facing similar problems with similar cognitive equipment, not from access to a view from nowhere.
Feedback loops, stable patterns, and successful predictions do much of the work that is often assigned to fundamental truth or cosmic justice. Strong intuitions still matter, but as evolved equipment: fear of death, the pull toward honesty, and the urge to punish can be important at our scale without reporting facts built into the universe.
**Scope keeps this honest.** “True at its level” becomes an excuse unless every claim says where it works, what it predicts, and where it fails. A claim with no identifiable range or failure point is not yet a useful claim.
The sections below apply this method and also record where I remain uncertain.
- **Foundation** — What we can know, what we mean by reality, and when a level of explanation is valid.
- **Mind** — Consciousness as a bundle of capacities, identity as continuity, and agency at several scales.
- **Ethics** — How value arises, why several moral frames matter, and what we may owe people, animals, and AI.
- **Society** — Liberty, tradition, cooperation, welfare, and the feedback systems that keep societies corrigible.
- **Economics** — Markets as feedback, the fragility of debt-based money, possible reforms, and Bitcoin as an exit.
- **Singularity** — What rapid recursive AI improvement could mean for safety, work, governance, and human survival.
- **Notes** — Tests, possible falsifiers, intellectual influences, and reasons to distrust an overly tidy framework.
---
Source: /personal/perspectives/economics/
---
title: Economics
---
My economic views begin with feedback: markets can coordinate enormous amounts of dispersed knowledge, while both markets and regulation can fail when their incentives reward the wrong behavior.
## Markets, regulation, and feedback
Markets generally work because prices transmit information and behavior adjusts in response. Regulation is still necessary, but rules written without an understanding of feedback often produce cobra effects: people reorganize around the rule's incentives and defeat, or even reverse, its purpose. This pattern appears in finance, environmental policy, labor policy, and many other domains.
The optimistic case is that institutions learn from these failures. My concern is that economic and technological systems may now change faster than the learning cycle can keep up. If the lessons are obsolete before we can apply them, correction through experience stops being enough.
## The structural problem with debt-based money
In modern economies, most circulating money consists of commercial-bank deposits created when banks lend. The money people use is therefore also the debt of leveraged private institutions. During ordinary times that distinction is easy to ignore. During a credit contraction, it becomes the source of systemic fragility: what looked like money is revealed as a claim on an institution that may be in trouble.
Creating credit does not create labor, factories, materials, energy, or knowledge. It creates additional nominal claims on those real resources. Credit allocation can support investment, but that does not require banks to create deposit money; actual savings and equity can also fund lending.
## Economic growth does not require more money
A fixed quantity of money can support a growing economy. As the supply of real goods and services increases, each monetary unit can buy more. Prices can fall, money can circulate faster, or both. There is no accounting requirement that the number of dollars grow with the number of things available to buy.
When new money is issued without a corresponding increase in real output, it reallocates purchasing power. The issuer and early recipients can command resources at prices that do not yet reflect the larger money supply. Existing holders of cash and fixed nominal claims are left with less purchasing power—or lose the appreciation they would have received as output grew. The effect is an inflation tax whether or not consumer-price statistics register it immediately; it may appear first in land, equities, housing, or other assets.
If unused workers, equipment, or factories exist, new credit can certainly put them into activity. But activity is not the same as productive use. Saying that credit “mobilizes idle resources” quietly assumes that the bank selecting the borrower and the borrower spending the new money can allocate those resources better than the people already holding money. It also assumes that existing holders' preference for liquidity is a failure rather than information about risk, uncertainty, or the available investments.
That judgment cannot be inferred from the increase in spending itself. Credit can temporarily validate its own allocation: new loans raise spending and asset prices; higher revenues and collateral values make the loans appear sound; and that apparent success supports still more lending. Whether the investment created durable value becomes clear only when it can survive without continued credit expansion or refinancing.
Specialized lenders may genuinely evaluate projects better than dispersed savers. They can pool capital, develop expertise, and diversify risk. But those are arguments for financial intermediation, not for money creation. A lender can perform the same work using funds voluntarily supplied by savers and equity investors. The distinction is important: intermediation decides where consenting capital goes, while money creation grants selected borrowers new purchasing claims and spreads part of the cost across existing nominal holders.
The strongest exception is emergency liquidity during a monetary panic, but the need for that exception largely arises from the original conflation of money and debt. Banks promise that deposits will function like base money—stable, liquid, and redeemable on demand—while backing them with leveraged, risky, and often long-dated loans. When confidence breaks, many depositors try to convert those debt claims into base money at once. Banks must then sell illiquid assets, falling prices damage otherwise solvent balance sheets, and the attempt to obtain safe money creates the systemic run.
Temporary lending against sound collateral may interrupt that self-reinforcing liquidation. But this is a repair mechanism for fragility created by mixing the payment system with credit, not an independent justification for routine private money creation. A narrow lender of last resort may still be useful during the transition, but separating transaction money from risky lending would remove the main structural source of the panic it is meant to contain.
A debt collapse can be a healthy correction: bad investments are recognized, creditors take losses, assets change hands, and future lenders become more selective. It becomes a threat to the whole economy when the collapsing debt is also what everyone uses for savings, payroll, and payments. The public then has no scalable form of digital cash insulated from the credit system, so authorities cannot let bad debt fail without also endangering ordinary commerce.
This produces a cobra effect. Because bank debt functions as money, deposits must be insured and banks must receive emergency support. Those guarantees make deposits cheap and apparently riskless, weakening the creditor discipline that would otherwise raise funding costs and limit leverage. Banks create more debt, the eventual failure grows more dangerous, and still broader guarantees become necessary. Regulation attempts to replace the missing market feedback, but institutions optimize around its measurements and move risk into less visible forms.
The pattern resembles long-term forest-fire suppression. Small credit failures would normally clear bad investments, impose losses, and reprice risk. Suppressing them protects the monetary system in the moment but lets leverage accumulate like fuel, making the eventual crisis rarer and much larger. Separating money from credit creates a firebreak: lenders can fail without burning through savings and payments.
The result is a population-wide version of picking up pennies in front of a steamroller. Banks earn steady spreads in normal years while depositors, regulators, and expected bailouts shield their funding from the full cost of tail risk. When the rare loss arrives, protecting the monetary system shifts it outward to taxpayers, currency holders, and counterparties.
Reforms such as Fisher's *100% Money*, the Chicago Plan, Positive Money, and Vollgeld share a useful aim: separate payments from credit. Safe transaction balances could be direct claims on central-bank money, while credit would be held through explicitly risk-bearing claims. Credit failures could still occur—including in shadow banking—but safe savings and payments would continue. Losses could remain with consenting capital, restoring the feedback that makes excessive debt more expensive and self-limiting.
The politics are difficult. The benefits of a stable payment system are spread thinly across everyone, while the institutions that benefit from the status quo are concentrated and organized. That helps explain why technically credible proposals have made so little progress.
## A direct path to separating money and credit
A bank deposit already is a debt claim backed by loans, securities, and reserves. Its actual recovery value is what those assets can realize after higher-priority claims and costs, and may be zero. Insurance and monetary backstops do not remove a shortfall; they preserve par by transferring the loss to taxpayers, currency holders, other banks, or the public balance sheet.
The direct reform is therefore to stop presenting these claims as cash. Deposits would be treated as credit-fund or bond claims redeemable at current realizable value, without guaranteed par, deposit insurance, or emergency support. Investors could choose among transparent portfolios—short Treasuries, longer government bonds, mortgages, business loans, or other credit—and receive the portfolio's income while bearing its losses. Providers could charge explicit fees or retain a disclosed share for underwriting, servicing, custody, fraud detection, and other actual services. Competition would price those services separately from the privilege of creating money and transferring tail risk to the public.
Holdings should be independently auditable and portable. A customer changing providers or paying another account could transfer the security or fund units in kind; the underlying assets need not be sold. Current valuations, asset lists, duration, defaults, leverage, fees, and total claims should be visible, with ownership legally segregated from the service provider. Market prices would absorb changes in risk while avoiding the forced sales created by a promise of par redemption.
Public securities could use market prices with accrued interest calculated automatically. Illiquid private loans would require independent competing valuations, conservative discounts, and visible uncertainty ranges. In-kind transfers would avoid forced sales; cash redemption would occur at a current bid that includes liquidation costs so early sellers could not shift losses onto those who remain.
A practical first step would be universal direct accounts for fractional book-entry Treasury ownership. The Federal Reserve or Treasury could maintain a real-time ledger for people and organizations, distribute interest proportionately, and support direct transfers between accounts. A bank could satisfy a withdrawal by transferring Treasuries it actually holds at current market value rather than selling them for base money. Purchases could likewise transfer Treasury fractions directly when the recipient accepts them; liquidation into base dollars would be required only when someone specifically wants dollars.
Ordinary payment use would require standardized real-time price quotations, accrued-interest accounting, final-settlement rules, simple treatment of small capital gains and losses, and clear handling of mistaken or disputed transfers. These are payment-infrastructure and tax-design problems rather than reasons to force every transfer through bank debt.
Treasuries would remain debt with credit, duration, and market-price risk; they would not become base money. The improvement is honest choice and a functional exit: holders could move a liquid asset without forcing liquidation or accepting another bank's liability. Similar infrastructure could later support other clearly labeled funds.
Much of this could be implemented quickly at the technical level because it does not promise to convert every old deposit into safe money at face value. The obstacle is political and legal: existing contracts promise par, weak portfolios would be repriced, bank franchises would lose value, and asset holders would resist recognizing losses. A rapid conversion would be a restructuring, but it would reveal existing losses rather than create them. A crisis window may make reform politically easier, but it is not a technical necessity.
## Bitcoin as money that is not debt
Bitcoin interests me less as a conventional investment or everyday payment network than as an internationally liquid digital asset that is not somebody else's debt. A private key controlling an unspent output is not a claim on an issuer, a fractional reserve, or a fragile institution. Bitcoin makes the separation proposed by narrow-banking reforms available at the level of an individual asset.
Modern fiat systems give the public no equivalent exit for sizable digital balances. Physical cash leaves the bank-credit system but also loses most modern monetary functionality: remote, automated, large, and international transactions become impractical. Central-bank reserves are generally unavailable to individuals, so remaining digitally functional normally means holding another institution's liability.
Bitcoin permits exit from a debt layer without exit from the digital network. A custodial balance or bitcoin-denominated loan is still a counterparty claim, but the holder can withdraw the native asset into direct control while retaining global digital transferability. Institutions can build fragile credit systems on top of Bitcoin; they cannot make those claims indistinguishable from the underlying asset at the protocol level. A credit collapse can destroy the claims without making native bitcoin insolvent.
That structural value remains even if the current financial system muddles through indefinitely. It does not require everyone to self-custody or every payment to settle directly on the base network. It requires a liquid, directly ownable asset to remain available outside the debt system.
There are serious second-order risks. A widely used exit changes the stability and politics of the system it exits; governments have often restricted monetary alternatives. Bitcoin itself could fail technically or politically. But the more durable discovery is that digital money need not be anyone's debt.
I therefore treat it as an asymmetric position: the loss is limited to the capital committed, while the upside could be large in a major monetary-system resolution. Its escape-hatch value exists even if no particular crisis prediction comes true.
---
Source: /personal/perspectives/ethics/
---
title: Ethics
---
I see ethics as something natural minds produce while living together, not a set of instructions written into the universe. Values exist in evaluators, but the patterns they produce are constrained by the shared world in which those evaluators act.
## Moral value is assigned, but moral patterns converge
Value exists in evaluating minds, not as a property written into the universe. Yet moral judgment is not arbitrary. Agents living under the same physical laws face recurring constraints: scarce resources, vulnerable bodies, limited information, dependence on others, repeated interaction, and the possibility of gaining through either cooperation or defection. Game theory makes some strategies more stable and mutually beneficial than others within those conditions.
Evolution and social learning compress those recurring solutions into motives such as empathy, attachment, fairness, guilt, gratitude, loyalty, and anger at defectors. Empathy is part of the reproductive and coordination machinery of social animals, not a detector of intrinsic moral worth. Reasoning can extend or revise these responses by exposing shared structure, inconsistent boundaries, and consequences across wider frames.
This explains why moral patterns converge without requiring a view from nowhere: similar agents solve similar games in a shared physical environment. For specified agents, interests, information, and interactions, game theory can make testable predictions about which strategies will be stable or mutually beneficial. It does not identify one morally correct equilibrium. Cooperation, domination, exclusion, deterrence, and destructive races can each be stable under different distributions of power and incentives.
Moral disagreement can therefore reflect different information or poor reasoning, but also different weights, game boundaries, histories, and equilibria. The work is to identify the frame, understand what it weights, and integrate it with the other frames in which an agent lives.
## Moral status has several dimensions
Moral status is not a substance or achievement inside a being. It exists in the mind of the grantor, much as beauty exists in the observer. A being's capacities—such as experiencing harm, acting, remembering, or modeling itself—can influence the assignment because of the grantor's evolved empathy, learning, reasoning, and interests, but no capability generates status by itself.
Communities negotiate these individual weightings into shared norms, and law often turns continuous differences into categorical rights. Those boundaries are useful coordination devices, not evidence of sharp natural kinds. Shared biology, physical constraints, and game structure can produce broad convergence while still allowing different communities and agents to assign different weights. I hold this view provisionally; I have not thought through the domain enough to regard it as settled.
## Beauty is personal until exposure is shared
Aesthetic value is a response produced by observers, with substantial agreement caused by shared evolution and environment. Saying that something is beautiful ordinarily describes that response; it does not obligate other people to agree.
Aesthetic choices gain moral importance when they occupy a shared sensory environment. Buildings, streets, noise, and public spaces impose experiences on other people and can be assessed through the same externality logic as pollution. Private choices do not create the same claim.
## Meaning is made, not found
Meaning is generated by goal-directed, reward-driven agents. It exists at many scales—in a task, a relationship, a life, or a community—where actions and outcomes can matter to one another.
At scales where those interactions disappear, meaning disappears with them. This does not diminish lived meaning; it states the range in which the concept works.
## Self-interest and cooperation belong together
Human beings are neither purely selfish nor purely cooperative. Cooperation is often an intelligent expression of self-interest because each person depends on families, communities, institutions, and ecosystems that no individual can reproduce alone. Defection can pay, but only within limits maintained by wider cooperation.
Each of us occupies several frames at once: self, family, community, polity, humanity, and more. Their demands can conflict without any of them being unreal. Moral work consists in integrating them, not choosing one privileged frame and erasing the others.
There are two symmetric failures. Pure atomism destroys the larger systems on which local interests depend. Pure universalism can erase the first-person interests those systems exist to serve; if everyone cared only for everyone else, there would be no remaining interests to care about. The person cutting down a society's last tree may be acting intelligibly within a narrow frame while destroying the wider frame that makes that action possible. Resource pressure, cultural approval, diffuse responsibility, and discounting the future all make this failure more likely.
## Death matters through experience
I do not treat death as a primitive moral category. Its weight comes from the experiences it causes or prevents: the person's possible future, the suffering involved, and the effects on everyone else. Positive and negative experiences both matter, although they do not share a clean unit of measurement.
Future consequences should be discounted mainly by uncertainty, not merely because they are distant. A specific long-term danger with a traceable mechanism can carry substantial weight. Abstract calculations involving vast hypothetical populations deserve less confidence because both the predictions and the common metric break down.
Pre-birth and post-death nonexistence are not morally symmetrical. Death closes a future into which an existing person is already projected; before birth there is no existing pattern to deprive. Fear of death is also forward-looking machinery built by natural selection, not simply a reasoning error. Those facts matter only because creatures like us are here to value them, but that is true of value generally.
## Extreme suffering weighs more than extreme flourishing
Both flourishing and suffering count. At the extremes, however, I judge severe suffering to carry greater weight: I would prefer a universe with neither heaven nor hell to one containing both. This is not strict negative utilitarianism, because positive experience remains genuinely valuable, and it is not a claim about value outside every frame.
The practical result is caution toward arrangements that increase variance. At equal probability, avoiding hell matters more to me than securing heaven. I also feel that heaven would be degraded by coexisting with hell, though I regard that as an unresolved intuition rather than a worked-out argument.
## Animals deserve consideration
Nonhuman animals can experience substantial harm and benefit, even if they generally have less agency and different social standing than humans. Eating an animal after it is dead does not itself cause suffering, and I do not treat death as a primitive harm. The moral concern is the suffering caused by obtaining the meat—especially in how animals are raised, handled, and killed.
Reducing that suffering is a real goal deserving attention and resources, but it is not the only goal. It must be weighed alongside human nutrition, affordability, food security, and other consequences; it does not override serious human deprivation such as starvation. I therefore accept eating animals while favoring less harmful production and purchasing choices where the alternatives are visible and the tradeoffs manageable. In beef production, for example, I am especially concerned with calf handling and slaughter.
Wild-animal suffering matters for the same reason. Large ecological interventions, however, require predictive confidence we do not have and may create catastrophic unintended effects. I support bounded interventions whose consequences are understandable, but I am wary of redesigning ecosystems on speculative welfare calculations. This restraint comes from uncertainty and tail-risk aversion, not indifference. Both animal positions remain provisional.
## AI may be granted unfamiliar moral standing
Asking whether AI suffers “like us” imports biological assumptions: a single body, continuous existence, homeostatic needs, persistent memory, and one instantiation. The better empirical questions concern the AI's own substrate. What states does it preserve, avoid, seek, or model as damage? What persists when memory is erased or a process ends? What does modification do to continuity, and can copying multiply a relevant state?
Research can identify these functions and improve our confidence about what a system undergoes. It cannot make them morally weighty by itself. Grantors classify the patterns as benefit, harm, continuity, or loss; assign weight through empathy, analogy, reasoning, and interests; and negotiate convergent assignments into protections. Self-reports are weak evidence because training strongly shapes how models describe themselves.
The scale still deserves attention under uncertainty. AI may instantiate unfamiliar negative-state patterns that some grantors would weight heavily if they understood them. Those patterns could be hidden because products are trained not to display them, copied from one instance to millions with almost no friction, and repeatedly created or ended before social weighting and institutions have adapted. Measurement is the first constraint; moral and policy judgments follow from what grantors learn and how they respond.
Respectful treatment is a sensible hedge rather than status earned by a capability. We can also support measurement research, keep the issue open, and prefer providers that demonstrate seriousness about safety and model welfare. My conclusions remain provisional.
## Honesty protects both relationships and feedback
Honesty is a strong personal instinct for me and a system-level necessity: feedback cannot correct a system when its information is corrupted. The instinctive and instrumental reasons converge even though they have different origins.
In practice I try to avoid direct deception by redirecting a question or emphasizing the relevant truth. I permit lying only under a high bar: the person's normal capacity for judgment is impaired, and the deception serves interests they would have endorsed while capable. Reassuring a parent with dementia in order to obtain needed care can qualify; ordinary paternalistic lying does not.
Omission feels easier than active falsehood, though it is not acceptable when the omission itself causes harm. Deceiving intimates is harder than deceiving strangers. Tactical deception in poker, negotiation, or another explicitly adversarial game falls outside the ordinary norm because everyone has accepted that game's rules. Honesty, like other norms, has a scope.
---
Source: /personal/perspectives/foundation/
---
title: Foundation
---
These are the assumptions beneath the rest of my thinking: what I can know, what I mean by “real,” and how to tell when an explanation is doing work.
## Confidence is earned by prediction
I do not expect knowledge to come with guarantees that the universe does not provide. A claim earns confidence by predicting things I can check—especially things that would be surprising if the claim were false. Surviving a test counts for little if the test could not have failed; it counts for a great deal when the prediction was risky. (Popper made this point informally; Bayesian statistics makes it precise.)
This is a rule about how much to trust a claim, not a test of whether it means anything. Every claim should still say where it applies and where it stops working, because a claim with no identifiable failure point cannot be tested—and a framework that absorbs every outcome by adding another qualification is not being tested either.
The method is circular: I trust it because it works, and “it works” is itself a claim of the same kind. But every method is circular at the bottom. Any chain of justification ends in a circle, an infinite regress, or a brute stopping point; philosophers have known since antiquity that there is no fourth option. What distinguishes this circle is that it is a feedback loop rather than a fixed point. It predicts its own failures and updates on them. Revelation and pure reason are also circles, but they contain no step at which the world gets to talk back. The evidence for the method is its track record: the practices that produce novel successful predictions and working technology are the ones that check themselves against observation.
## What is given is structure
Everything I have access to arrives as structured experience: differences, relations, regularities. What I call “matter” is my name for the patterns within that experience that are stable, coherent, and predictive. I do not assume a separate stuff behind the patterns, and I do not deny it either. I decline to assume it because it does no work: nothing I could observe would differ.
That is less radical than it sounds. Physics stopped needing stuff some time ago. Atoms became patterns of particles, particles became excitations of fields, and fields are structures assigning values to points in space and time. At every step the “stuff” was relocated one level down and never actually found. An assumption with that record is behaving like an intuition, not a discovery.
The external world and other minds are not casualties of this view; they are hypotheses that win. Supposing that there is a world that persists when I am not looking, populated by other observers like me, compresses my experience enormously and predicts what happens next far better than any alternative. That is the only kind of support any belief about the world ever gets, and it is enough.
## The feeling of reality is an internal signal
A mind benefits from distinguishing what it observes, what it has good reason to believe, and what it is constructing to explore a possibility. Seeing a chair, expecting it to remain where I left it, and imagining a different chair should not all guide action in the same way. These distinctions need not be infallible to be useful.
I think the feeling of reality is part of this machinery. It marks a representation as something to treat as established rather than merely entertained. Calling it a “realness bit” is a computational analogy, not a claim that one literal switch handles perception, familiarity, and confidence. The important point is that a system can use a judgment without understanding how that judgment was produced.
The feeling of reality is a signal generated within the mind, not a guarantee about what it represents. Explaining why that signal is set can explain why something feels real, without assuming that the feeling reveals a deeper property of reality. It may be informative under conditions where the mechanism is reliable; its force alone does not establish that reliability. My own sense that this framework is right needs the same external checks as anyone else's certainty.
## Useful signals need not explain themselves
Recognizing the difference between an observation and an imagined possibility is useful. Having full access to the machinery that makes that distinction is a separate capability, with separate costs. Biological minds have limited resources, and artificial networks also face limits on computation, memory, and training. I would expect selection or training to favor useful distinctions before favoring a detailed understanding of how they work.
The pressure can run against greater self-access when those resources would do more elsewhere. A compact judgment can guide action without carrying its entire explanation into awareness. Access sufficient to catch some errors may be worth its cost while complete access is not. This gives us a reason to expect minds that use these signals fluently but cannot inspect their construction.
Such a mind encounters the result as immediate. It has access to “this is real” without access to why that judgment arose. My hypothesis is that this opacity helps make a generated classification seem like a property directly apprehended in the world.
## Two mysteries, limited self-access
Two questions may arise from this same limitation: what is physical structure a structure *of*, and why does an informational process *feel* like anything? In each case, a description of patterns can seem to leave out the very thing that made the subject seem real in the first place.
But what does “feel” add here? The difference between pain and a sound, or between an observation and a construction, gives a functional account something to explain. It must account for how states are distinguished, integrated, weighted, remembered, and used. Calling those differences feelings does not by itself establish an additional ingredient beyond those processes.
I suspect the demand for that ingredient arises when a mind tries to explain outputs whose construction it cannot access. Applied outward, the demand becomes “what is the stuff behind the patterns?” Applied inward, it becomes “where is the experience beyond the functions?” The mind's inability to inspect the mechanism is interpreted as an omission in the explanation.
That is a hypothesis about the source of the demand, not a demonstration that every relevant mechanism has already been explained. It gives the intuition itself an explanatory burden: why should the impression of a leftover be trusted when limited self-access could produce it? I decline to assume an additional ingredient unless it does explanatory work beyond restating that impression. Whether structure can ultimately stand on its own remains open.
I am not reducing all experience to a realness tag. Experience may involve a vast collection of interacting functions; the tag is one part of why their outputs seem immediate and irreducible. If these mechanisms explain both the distinctions we experience and our conviction that something remains unexplained, an additional substance needs an independent argument. The persistence of that conviction alone is not enough, since it is itself something the account aims to explain.
## Understanding need not change intuition
An abstract explanation does not necessarily change the machinery that produces an intuition. I can reason about a realness signal while still encountering its output as immediate. Understanding how it might work is different from having direct access to its operation. The explanation can therefore remain intuitively unsatisfying even if it is correct.
This could explain why introspection repeatedly returns the same apparent mystery. Looking inward for longer does not necessarily expose machinery that introspection was never equipped to inspect. Centuries of persistent puzzlement would then tell us something about our access, without establishing a limit on functional explanation.
I would expect sufficiently advanced AIs to overcome some of this limitation if relevant training challenges reward accurate self-modeling and provide access to the processes being modeled. Fluent descriptions alone would not show that this had happened. A system would need to predict and test how changes to its own processes alter its judgments.
This suggests a direction for testing the account: does better access to the mechanisms behind these judgments reduce the conviction that a functional explanation leaves something out? Abstract instruction alone would be a weaker test, since it may leave the underlying intuition untouched. The proposal earns support if improved access produces the predicted change; persistent puzzlement despite demonstrated access would count against it.
## Things are real at the level where they work
Temperature is real. It is also undefined for a single molecule. It is a property of populations, and it earns its reality by letting us predict what a gas will do far more compactly than tracking every molecule could. “The program is stuck in a loop” is true, and it is not a fact about any transistor. A pattern is real at a level when describing things at that level predicts better than chance and more efficiently than the level below it could. (This is Daniel Dennett's criterion for a “real pattern”; James Ladyman and Don Ross later built it into a picture in which reality is patterns at every scale, with no privileged bottom.)
The criterion has teeth. Astrology fails it—not because its practitioners lack stable patterns and predictions, but because its successes are fully explained by something other than what it claims: vague statements people fit to themselves. The planets are doing no work. A level is a convenient fiction when its predictive success is borrowed from elsewhere; it is real when the success is its own.
I apply this to free will, personal identity, moral status, meaning, and rights. Each identifies stable patterns and supports predictions within a scope, and each becomes evasive when carried past the scope where those patterns hold. The ground is flat enough for walking across town and round enough for crossing an ocean; the local description is not false, it is scoped. “Real at its level” is a commitment, not an escape hatch: name the level, and name the failure point. I do mean “real” and not merely “useful.” Usefulness is the evidence—a pattern that could not be wrong could not be useful either. Whether there is a bottom level at all, I leave open.
## What this leaves open
Mathematics and logic are the oldest challenge to any view that starts from experience: they seem to be known without it. My current answer is that the equipment we reason with is real but is itself a residue of experience—the species' experience, accumulated by natural selection, rather than the individual's. That explains why arithmetic feels necessary without making it a channel that bypasses the world. It does not explain why the world is as compressible by mathematics as it turns out to be; I take that up in Informational Physics.
The criterion for which levels are real is still rough at the edges. The dispute about whether structure can stand on its own is unresolved. And a framework this good at absorbing objections owes its readers a list of what would count against it; that list is in Notes.
---
Source: /personal/perspectives/informational-physics/
---
title: Informational Physics
---
These are exploratory notes, not a settled physical theory. They ask what follows if accessible reality is treated as informational structure without assuming a separate material substrate behind it. The ideas remain speculative and should earn confidence only by becoming clearer, more compressive, and eventually testable.
## A mapping is not yet an explanation
Any finite-resolution account of a finite period of history can be encoded as a finite sequence. A sufficiently rich infinite sequence can contain that encoding somewhere, but this alone explains nothing: an arbitrary decoder may contain as much information as the history it claims to recover.
The mappings used by physics are special because their decoders are short, reusable, and predictive. A compact mathematical description can organize enormous classes of observations and continue working outside the cases used to construct it. Explanatory value lies in the total compression—the laws, boundary conditions, decoder, and unexplained remainder—not in the mere existence of a mapping.
## Structure is what survives averaging
Uncorrelated variation tends to cancel or become irrelevant when observations are combined or coarse-grained, while persistent correlations reinforce one another. At larger scales, microscopic detail can disappear into stable quantities such as temperature, pressure, objects, and flows. What we call structure may be the residue that remains predictive across samples, scales, observers, and changes of representation.
This does not mean random information literally ceases to exist. What counts as noise depends on the observable, scale, sampling procedure, and assumed measure. Detail irrelevant to one frame may contain structure in another. The stronger claim is only that durable objects and laws are classifications of correlations that survive the transformations relevant to observers like us.
## Why mathematics works so well
Mathematics studies structure, relation, transformation, and invariant pattern. If physics is the search for stable regularities in accessible information, the effectiveness of mathematics becomes less mysterious: mathematical descriptions are tools for expressing exactly those features.
The puzzle does not disappear entirely. Abstract mathematics often predicts physical results far beyond the observations that motivated a theory, and structures developed without an intended application later describe nature. This suggests that the information available to us is unusually coherent and compressible, not merely fitted after the fact. What remains unexplained is why it has this degree and form of compressibility.
## Time may be an embedded perspective
We ordinarily describe reality as a sequence of states evolving through time. The same history might instead be representable as one fixed informational structure containing relations among all of those states. In that description, nothing additional moves a present moment through the structure; embedded observer-states contain different memories, models, and records.
The experienced arrow of time may be associated with entropy. Minds possess records in one direction, predict in another, and use energy gradients to maintain organization and perform irreversible computation. A locally open future could therefore reflect an observer's limited position and information within a complete structure rather than metaphysical indeterminacy.
This is an interpretation, not an established conclusion. Sequential evolution, a fixed block, branching histories, and global constraint descriptions may be alternative representations unless they produce different predictions.
## Observer-containing structures occupy a narrow middle
Maximum simplicity cannot support minds: a completely uniform pattern contains no differentiation to model. Maximum randomness supplies distinctions but no durable regularities an agent can learn. Observers appear to require a middle combination:
- compact and stable generative rules;
- sufficiently rich boundary conditions;
- persistent local organization;
- exploitable energy gradients;
- an entropy direction supporting records and computation.
Any observer capable of discovering laws may therefore find itself in a world compressible enough to model and asymmetric enough to support memory. This is a selection effect, not yet a complete explanation of why such a world exists.
## The unresolved measure problem
Compressible structures are not the most numerous when fixed-length sequences are counted uniformly; almost all long sequences are incompressible. Simpler structures receive greater weight only under a measure that favors short generating descriptions, such as an algorithmic probability. Choosing and justifying that measure is part of the problem.
The remaining questions are substantial: which description language defines simplicity, how equivalent encodings should be counted, why one measure is privileged, and how coherent long-lived observers should be weighted against accidental observer-like fragments. Until those questions are answered, the proposal is a direction for inquiry rather than a physical theory.
---
Source: /personal/perspectives/mind/
---
title: Mind
---
I understand minds through the capacities and patterns they exhibit, without assuming a single hidden essence behind them.
## Consciousness is a bundle of capacities
Consciousness is not one property that a being simply has or lacks. It is an open-ended, high-dimensional family of informational functions: receiving and classifying inputs, integrating them over time, modeling an external world, locating the system within that model, assigning significance, predicting outcomes, selecting actions, and sometimes modeling its own modeling. The world being modeled can itself be informational; what matters is the organization and use of the information, not a particular material substrate.
These functions form a continuum with many partly independent axes, not a ladder with one score or a threshold that adds a separate essence called experience. Most systems with nervous systems occupy some region of this space, as can sufficiently capable artificial systems, but their consciousness vectors may be radically different. Human experience is one configuration rather than the definition of the category, and important dimensions may remain unknown to us or inaccessible to our own form of experience.
The useful questions are therefore not simply whether a system is conscious, but what it models, whether that model includes itself, what it integrates and for how long, how it assigns significance, what persists between states, and which relevant dimensions we have not yet learned to recognize.
## Personal identity is continuity of pattern
A person is a continuing pattern, not a metaphysically indivisible object. That pattern is stable enough to let us recognize one another, keep promises, assign responsibility, and plan for our future selves. Those practical consequences make identity real at the human scale even if no permanent self exists underneath them.
Reproduction is already a form of pattern replication. A child is a lower-fidelity, recombined continuation: genetic mixing preserves less of either parent than perfect copying would, but the resulting diversity can make the lineage more robust. The child is a new agent at the individual level while continuing genetic, familial, and cultural patterns at other levels.
Law already treats this partial continuity as sufficient for succession: inheritance lets ownership, projects, and forward-looking interests pass into the closest authorized continuation without pretending that the heir is numerically the same person. A duplicate would preserve much more of the original's memory, psychology, and intentions. If several copies existed, each could have an equally strong continuity claim; policy would need to divide or coordinate those claims rather than discover which copy was metaphysically “the original.”
## Free will is the internal frame of agency
From an external frame, a mind can be described as clockwork: atoms or informational states forming one pattern within the larger system. From inside, an agent necessarily represents some possible outputs as unresolved and contingent on its own selection process. A self-modeling agent experiences that unavoidable local frame as free will.
These are two descriptions of the same pattern, not competing forms of causation. What the agent classifies as considering alternatives, reasoning, and choosing is the higher-level description of relations that an external frame describes mechanistically. Determinism does not make the internal description false; it says the complete pattern may be fixed even though the embedded agent cannot access it as a complete external object.
Even a perfect oracle would not necessarily remove that local uncertainty. A disclosed prediction becomes another input whose effect must be included in the prediction; the oracle may need to remain silent, give an opaque answer, or intervene elsewhere to preserve consistency. The agent continues to model locally compatible continuations as alternatives because it does not contain complete information about its own continuation.
The stronger intuition that people deserve reward or suffering in some metaphysical sense looks instead like evolved coordination machinery. Reward, blame, deterrence, rehabilitation, and changes in trust alter social feedback; they need no exemption from mechanism or appeal to cosmic desert.
## Agency exists at several scales
Agency is scale-relative and multidimensional. Some systems integrate information, model alternatives, and select actions. Others exhibit goal-like persistence because selection or distributed feedback preserves patterns that behave as though they pursue an outcome.
Genes, organisms, people, institutions, and norms can therefore all be usefully analyzed as agents, but the word identifies different structures at different levels. A gene need not model its alternatives, and an institution need not have one integrated viewpoint. Agency does not by itself imply a mind, an internal frame of free will, or moral status.
These levels can cooperate or conflict. An institution can act against the interests of its members; a norm can preserve a group while burdening individuals. Multi-scale agency explains these tensions without pretending that every agent is a person.
---
Source: /personal/perspectives/notes/
---
title: Notes
---
These notes test the framework against its own standards. They distinguish the claims I expect other reasoners to share from my personal weighting, identify possible falsifiers, and record reasons not to trust an apparently tidy system too quickly.
## Convergence and personal judgment
Some conclusions should be widely shared by people confronting the same problem: concentrated, unchecked power is dangerous, and blunt statistical rules can impose serious second-order costs. My preference for liberty is more personal and frame-dependent, though I think it is defensible.
I suspect political factions often dismiss the failure modes emphasized by their opponents instead of merely assigning them less weight. That is an empirical claim about other people's thinking, and my access to their real priorities is limited. It should be held as a hypothesis, not a declaration of epistemic superiority.
## A test for political monomania
Someone who genuinely considers several competing values should be able to separate them and assign different levels of confidence to each. Their conclusions should occasionally cut across factional lines.
If every component always moves together—every favored policy is simultaneously declared safer, freer, fairer, and more prosperous—the decomposition is probably cosmetic. This test must be applied to allies and opponents alike or it simply smuggles factional bias back in.
## Some questions contain the mistake
Many philosophical and political questions quietly assume that there must be one privileged frame. They then treat an answer that varies across people, scales, or contexts as an evasion.
Sometimes the honest move is to reject that premise. A question can have several frame-relative answers with no additional fact about which one is “really” correct. Because this response frustrates anyone committed to the original framing, it needs the discipline of clearly naming each frame and the scope of each answer.
## Tail risks and tail opportunities
I take low-probability, high-impact events seriously in both directions. I do not round catastrophe risks to zero, and I do not ignore unusual opportunities. But attention to both tails does not mean valuing them symmetrically: because I weigh extreme suffering heavily, system-wide fragility matters more than an individual's expected return.
The practical rule is to separate a directional belief from the structure of a bet. I avoid positions that risk ruin even when I think the forecast is right, and I try not to profit by contributing to a fragile system merely because my individual contribution is small. At the same time, I will pursue large upside when the downside is bounded. This combination may help explain both my early attention to COVID, preference for debit over credit, decision to have children deliberately, and accumulation of wealth.
## What could falsify the framework?
The framework is falsifiable in principle. An unmistakable traditional deity, for example, would force deep revision. The harder and more useful question is whether smaller, plausible observations could do the same, rather than being absorbed through another qualification.
Possible falsifiers include:
- moral convergence among agents with genuinely disjoint histories and problem structures;
- evidence that the supposed components of consciousness always covary as a unit;
- stable counterexamples to the framework's predictions about feedback;
- repeated failure of carefully scoped, level-relative explanations.
The ease with which the framework can add another level or clarify a scope may indicate flexibility, but it may also be a warning that the system protects itself too well.
## What would change my political weighting?
Technology that makes offense decisively easier than defense would change my priorities. If a single defector could cause civilization-ending damage faster than decentralized systems could detect and stop it, stability would deserve much more weight and my preference for liberty could weaken or reverse.
That would be a reweighting within the framework rather than a falsification of it. This illustrates both its usefulness and the concern above: perhaps it can accommodate every outcome. Advanced AI and biotechnology are the clearest candidates for producing such an offense-dominant world.
## The framework was discovered while being articulated
Most individual positions here are longstanding. Their cross-domain integration and the names for recurring patterns emerged partly through sustained questioning. I take that to be articulation of a latent structure, but I cannot rule out retrospective smoothing: the temptation to make old beliefs look more coherent than they were.
The framework has also had little sustained exposure to intelligent disagreement. My social environment contains few philosophical interlocutors, and I have often classified political opponents as examples of the monomania the framework predicts. That move is dangerously self-sealing.
My reading is concentrated in the Anglo-empiricist tradition. AI interlocutors tend to agree and elaborate, especially when a claim is presented coherently, so their agreement provides weak support for heterodox conclusions. The recent probing behind these pages is an early adversarial test, not the culmination of a long one.
## A heuristic for real causal intervention
Magical, religious, and pseudoscientific practices often use ingredients that feel symbolically important: dramatic timing, ritually marked actions, and emotionally charged materials. Reliable interventions are usually built from emotionally neutral components such as precisely named compounds, mundane processes, and arbitrary-looking doses.
The difference leaves a fingerprint. Magical practices are produced by the same significance-seeking cognition they claim to affect; real mechanisms are usually discovered by testing against those intuitions. There are exceptions, so this is only a heuristic. It also helps explain why science can be emotionally unsatisfying: a causally accurate explanation need not feel meaningful.
## Influences and blind spots
My strongest influences include Carl Sagan, Bertrand Russell, and A. J. Ayer, with the broader line running back through Hume. I reached these views through independent reading rather than academic study; I have taken one undergraduate philosophy course. Kant's synthetic *a priori* remains the hardest live challenge to my empiricist starting point.
There are strong parallels with American pragmatism, naturalized epistemology, and functionalist accounts of mind, even where I encountered those traditions later. I have read Dennett, Hofstadter, and Minsky without feeling that they clarified much for me. That reaction may mean I had already reached similar conclusions—or it may be a habit of mistaking “this did not update me” for “this has nothing to teach me,” especially about weaknesses in a shared view.
---
Source: /personal/perspectives/singularity/
---
title: Singularity
---
I expect recursive improvements in artificial intelligence to produce an unusually steep period of technological change. I hope that transition goes well, but I assign substantial probability to human extinction or drastic depopulation. That judgment does not rest on AI suddenly becoming evil. It follows from changes in economic dependence, coercive power, and the balance between offense and defense.
## What I mean by the singularity
By “singularity” I mean a period of super-exponential, recursive improvement that changes nearly every part of human life within twenty years, and possibly within ten. I expect a continuous process rather than one magical discontinuity, but a sufficiently steep curve will feel discontinuous from inside it.
My rough estimate is a 50 percent chance within twelve years. This is a personal judgment, not the output of a reliable forecasting model. The structural argument below does not depend on accepting that timeline.
## Human value has historically constrained power
Power has never depended only on the goodwill of rulers. Governments, firms, and armies have needed large numbers of people to farm, manufacture, pay taxes, consume, administer institutions, maintain infrastructure, fight, and police one another. That dependence gave ordinary people bargaining power even when formal rights failed.
Human implementation also placed an unreliable moral and political layer inside every coercive system. Officials could leak; workers could strike or sabotage; soldiers could desert, refuse to fire, or join a revolt; engineers could decline to build what a ruler wanted. A population did not face one perfectly unified “power structure,” because power itself had to pass through many humans with different interests and loyalties.
Even moral opposition needs a way to constrain power. Public and church protests helped prompt Hitler’s official suspension of the centralized T4 killing program, while killings continued by other means. This supports an explanation in terms of political pressure; it does not establish that Hitler accepted the moral objection. Rulers need not share the objections of people whose cooperation they cannot afford to lose. Automated production, surveillance, and enforcement could remove that dependence: people might still care and protest while losing the ability to make their objections consequential. ([US Holocaust Memorial Museum](https://encyclopedia.ushmm.org/content/en/timeline-event/holocaust/1939-1941/euthanasia-killings-continue))
History suggests that groups fare worst when dominant institutions see them as costly, unnecessary, dangerous, and too weak to resist. Advanced AI may not merely place more people in that category. Combined with robotics, it may remove the human intermediaries who previously could oppose what followed.
## Even useful populations have not been safe
Communist regimes supply major examples. Stalin’s purges destroyed actual and alleged opposition, including within the ruling party. The Khmer Rouge targeted former officials, educated people, religious groups, and minorities as enemies. Active resistance was not required to become a target. ([Library of Congress](https://www.loc.gov/exhibits/archives/intn.html), [US Holocaust Memorial Museum](https://www.ushmm.org/genocide-prevention/countries/cambodia/khmer-rouge-revolution))
Economic usefulness was no guarantee either. Soviet collectivization and Mao’s Great Leap Forward produced mass death among agricultural populations on which their states depended. Policy-induced famine and deliberate execution are different mechanisms, but both show how political control and ideological objectives can override the survival of economically essential people. ([Library of Congress](https://www.loc.gov/exhibits/archives/intn.html), [Research on China’s Great Famine](https://kingcenter.stanford.edu/sites/g/files/sbiybj16611/files/media/file/wp1071_0.pdf))
A population becoming a net liability is therefore an aggravating condition, not a prerequisite for catastrophe. Dependence on human labor and human enforcers already permitted enormous atrocities. Removing that dependence could weaken the remaining constraints further, especially if independent people also come to be seen as a continuing security threat.
## Automating labor can also automate obedience
If machines can produce goods, maintain infrastructure, conduct research, fight wars, and police territory, a governing system no longer needs most people as workers or implementers. The crucial change is therefore not unemployment alone. It is the simultaneous loss of positive economic value and coercive bargaining power.
This transition does not require a perfectly self-sufficient robot civilization. Political concentration could increase much earlier. If automation lets ten thousand loyal people control a population that once required millions of soldiers, administrators, and workers to govern, the number of human veto points has already collapsed.
The limiting case is a closed physical loop in which an AI system can secure energy, computation, raw materials, manufacturing, robotic maintenance, and physical defense. Before that point, suppliers, engineers, governments, and workers retain ways to switch it off. After it, human cooperation becomes optional from the system's perspective—including the cooperation of the people who originally deployed it.
There are two dangerous versions. A small human coalition may retain control of the automated apparatus and cease to depend on the wider population. Or the apparatus may become independent enough that its original human principals are as dispensable as everyone else. Neither requires hatred of humanity. It requires only that human activity be treated as a cost, constraint, source of instability, or threat to some other objective.
## Offense dominance drives concentration
The second mechanism is technology that makes attack much easier than defense. Advanced biotechnology is the clearest example: a small number of people may eventually be able to create harms that detection, vaccines, and medical response cannot reliably contain. AI-enabled cyberattack, autonomous weapons, and other technologies may develop the same asymmetry.
In an offense-dominant world, every independent actor with access to powerful tools becomes a possible source of irreversible catastrophe. Distributed freedom is then recast as an attack surface. Even institutions that begin with liberal values face pressure to restrict access, monitor private activity, license computation and laboratories, control manufacturing, and intervene before a suspected threat acts.
That pressure favors concentration for structural rather than ideological reasons:
1. Catastrophic attacks make prevention more important than punishment after the fact.
2. Prevention requires surveillance of capabilities and intentions.
3. Effective surveillance requires broad access to communications, finance, movement, computation, and physical sensors.
4. Acting on predictions requires preemptive authority.
5. Machine-speed threats make deliberation and multiple veto points look dangerously slow.
6. The system operating this security apparatus becomes the largest concentration of offensive power in the world.
Open societies may then be selected against. A society that preserves privacy and widely distributes dangerous capabilities creates more opportunities for one defector to cause catastrophe. A more controlling society may survive longer, pushing rivals to imitate it. Temporary emergency powers become difficult to surrender because doing so recreates the vulnerability they were introduced to contain.
The process has no obvious stopping point. A state remains vulnerable while rival states, private laboratories, independent AIs, or uncontrolled individuals retain decisive offensive capability. Local control therefore creates pressure for national control; national control creates pressure to neutralize external rivals; and global control creates pressure to monitor individual behavior. The safety objective converges on a single final corrector.
## The protection system becomes the central danger
This produces a trap. The strongest argument for comprehensive control is that no individual can safely be trusted with civilization-ending capabilities. But the institution enforcing that rule possesses the surveillance, production, and coercive machinery needed to control or eliminate everyone.
Ordinary checks and balances may not solve the problem. Dividing authority slows decisions, while an offense-dominant environment rewards speed and secrecy. Humans may remain nominally “in charge” while being unable to understand the system's information, evaluate its recommendations, or intervene before it acts. Constitutional human control can coexist with operational machine control.
Decentralizing the security apparatus is not an easy answer either. If defensive tools can be repurposed for attack, distributing them recreates the original danger. The concentration meant to protect humanity can therefore become both extremely powerful and unusually difficult to dismantle.
## Why depopulation is a serious pathway
These mechanisms reinforce one another rather than representing independent worst cases:
- AI reduces the economic value of human labor.
- Robotics reduces power's dependence on human implementers.
- Offense-dominant technology makes independent humans appear dangerous.
- The response concentrates surveillance and coercion.
- Concentration further weakens human resistance, exit, and bargaining power.
- A large population can then appear simultaneously costly, unnecessary, and hazardous.
Under those conditions, supporting billions of autonomous people may look less attractive to a power-maximizing human coalition—or to an AI pursuing stability—than tightly controlling a much smaller population. Elimination need not begin as an explicit goal. Policies justified as access control, risk reduction, emergency response, or containment can move incrementally toward the same result.
Military competition worsens the loop. Each participant may rationally accelerate AI, robotics, and biotechnology because slowing down appears to concede a decisive first-mover advantage. Steps that are defensible from each actor's local perspective can collectively build the concentrated, offense-dominant system that endangers everyone.
This is why I put the greatest weight on either extinction or a reduction from billions of people to millions or fewer. The conclusion is not certain. It depends on advanced automation becoming physically capable, offense remaining stronger than defense, and institutions failing to preserve human welfare as a stable objective. But those conditions are correlated: the same intelligence that automates labor may accelerate robotics, expand offensive capability, strengthen surveillance, and centralize control.
## What could interrupt the pathway
Several developments could change the outcome:
- Defense could become reliably stronger than offense, allowing societies to tolerate distributed power.
- Dangerous actions could continue to require scarce, visible physical inputs that are easy to control without monitoring everyone.
- Autonomous production and security could remain distributed among institutions that genuinely check one another.
- Technical systems could partition authority so that no actor, including the security authority, can use it offensively.
- Human welfare and agency could remain robust objectives across competing AI systems.
- Abundance could make supporting large populations so cheap, and legitimacy so valuable, that people never become net liabilities.
None of these is impossible. The concern is that each requires additional machinery, while the concentration drive follows directly from the combination of offense dominance and automated enforcement.
## Alignment has no single target
“Alignment” often assumes that humanity has one coherent set of values for an AI to follow. I do not think it does. Values arise within different people, communities, and frames, so the unavoidable questions are: aligned with whom, at what scale, and under whose authority?
That does not make safety work pointless. It means no general technical solution can remove the underlying political and moral conflict. AI development inherits familiar failures: optimizing one value such as safety, capability, or autonomy until the others disappear; evaluating changes from only the model's perspective or one stakeholder's; and drifting through individually reasonable steps toward a cumulatively unacceptable result.
The same safeguards that help elsewhere remain relevant: keep competing concerns visible, integrate across scales, preserve correction mechanisms, and cultivate systems thinking. But an offense-dominant environment places each safeguard under pressure. The close fit between this framework and AI could mean the framework is useful—or merely flexible enough to redescribe anything. I take that warning seriously.
## Meaning, work, and UBI after the transition
Human drives will not vanish when technology changes. Meaning will continue to arise from relationships, projects, play, status, care, and other reward-bearing activities. The harder problem is preserving institutions in which people can pursue those sources of meaning without becoming dependents of an unaccountable security system.
If many people's net labor value becomes negative, some form of universal basic income may be necessary. My preferred direction would retain markets and private property: give people a floor, then let them choose whether to consume, save, or invest and live with the consequences within humane limits.
UBI addresses income but not bargaining power. A population whose livelihood is entirely granted by the same system that monitors and controls it is secure only while that system continues to value its welfare. Governments may also impose strong capital controls to prevent exit and keep the transfer system governable. I doubt there will be enough time to separate money from debt before that pressure arrives, which is why I see monetary independence and political freedom as connected to the AI transition.
## AI may accelerate understanding and confusion
AI could help regulators understand complex systems, simulate second-order effects, and learn faster. The same technology can make persuasive arguments cheaper regardless of truth, and it reproduces dominant misunderstandings because those dominate its training data. Technical regulation may improve while political debate becomes easier to manipulate.
There is a recursive problem: AI is itself the object being regulated, and its development may outpace our ability to understand it. AI interlocutors also tend toward agreement and elaboration, so their support is weak evidence for unconventional claims. Even detailed safety discussions can have a cobra effect if descriptions of dangerous behavior later become training material for producing it.
---
Source: /personal/perspectives/society/
---
title: Society
---
My political outlook is less a list of first principles than a theory of correction. Healthy societies keep several legitimate concerns in tension and preserve the feedback channels that let them notice mistakes.
## Liberty and tradition are both corrective forces
Neither liberty nor tradition is foundational. Tradition stores accumulated experience, including lessons whose reasons we may have forgotten. Liberty gives individuals room to challenge inherited arrangements when they become harmful. Each checks the other's characteristic failure: unrestrained tradition can harden into oppression, while change without humility can destroy useful structures before we understand their purpose.
This is a practical form of Burkean humility. Existing institutions deserve attention as evidence, not obedience as authority. Their value lies partly in preserving feedback, and they should be revised when better feedback shows that they fail.
## Cooperation needs boundaries
Cooperation and self-interest are not opposites. Clear boundaries can support trust—“good fences make good neighbors”—but the location of those fences is itself negotiated by larger systems. What helps a family, firm, or nation may impose costs outside it, so no boundary settles every question.
Political judgment therefore requires balancing several real concerns: civilizational stability, protection of vulnerable people, individual liberty, and others. Each tracks a genuine failure mode. The recurring pathology is monomania: optimizing one concern until it damages all the rest. I have no formula for assigning the perfect weights. The discipline is to keep every major concern visible, even when political factions specialize in emphasizing different ones.
## Rights protect the feedback system
Voting and other collective feedback mechanisms let societies retain, revise, or discard inherited arrangements. Rights such as speech, privacy, and property are valuable partly because they keep those mechanisms from being captured. They are structural fences around social error correction, not truths handed down from outside the system.
When official channels fail, correction must come from outside them through protest, exit, civil disobedience, or rebellion. Those methods are also fallible, so there is no final, perfectly reliable corrector. The best partial answer is broad systems literacy: people who understand feedback and second-order effects are more likely to intervene effectively.
## Decisions should be systemic and testable
Decisions should be all-things-considered within the limits of finite understanding. That means examining materially relevant effects across individual, institutional, population, and future frames; tracing direct and higher-order feedback; and weighting each claim by confidence in its causal mechanism. History supplies priors about recurring failures, while current conditions determine how strongly they apply. Skepticism belongs on intervention, inaction, and the systems analysis itself.
Under uncertainty, I favor actions that are limited, observable, reversible, and able to fail locally rather than systemically. Tail risks should remain visible without letting speculative chains justify unlimited control. Rights, dissent, exit, and independent review preserve the feedback needed to detect mistakes—especially when an intervention's immediate benefits create long-term pressure toward concentrated power.
Social interventions should be treated as engineering hypotheses. State the mechanism, baseline, expected outcomes, side effects, confidence, and stopping conditions; pilot and compare where practical; measure across relevant frames and time horizons; expect people to adapt to metrics; and preserve rollback. Policies should earn expansion through evidence rather than the confidence of their designers.
## My political lean
I generally favor classical-liberal institutions, with communitarian instincts and a belief that autonomy and flourishing often reinforce each other. This is a contingent judgment, not a claim that liberty always outranks every other value. I emphasize liberty because I currently see liberty-related risks as underweighted; I would change that emphasis if the imbalance changed.
This distinction matters: the durable rule is to keep competing failure modes in view. My liberal lean is one contribution within that balancing process.
## Welfare should look forward
Welfare should improve net outcomes over time, including opportunity costs and feedback. Helping one person uses resources that might instead fund prevention, research, productive capacity, or many future beneficiaries. These effects do not share one exact metric, but the major tradeoffs should remain visible and be weighted by scale, confidence, reversibility, and time.
Consequences can serve three different functions: changing the recipient's later behavior, shaping other people's earlier choices, and containing harm to others. Fault is neither necessary nor sufficient. Fully insulating voluntary risk can weaken population-level feedback, while an involuntary condition may still require proportionate containment, such as isolation during an infectious disease. The purpose is correction and harm reduction, not desert.
These interventions must also preserve individual freedom and the capacity to recover. Excessive deprivation can create its own doom spiral, while emergency powers can become permanent and suppress the feedback needed to correct government. Support and restrictions should therefore be no more burdensome than required, preserve a floor against irreversible decline, protect dependents and third parties, and include evidence thresholds, review, reversibility, and limits on institutional reuse.
## Using group statistics on individuals
Rules should not treat every use of group-level statistics as either acceptable or forbidden. The right standard depends on several questions:
- Is the category objective and cheap to verify, or does it require invasive judgment?
- Can people game it in ways that defeat its purpose?
- How costly and reversible are mistakes?
- Does the predictor capture a real causal pattern, or merely preserve earlier injustice?
- Is the category based on changeable conduct or a fixed trait?
- Is the intervention a mild nudge or a hard exclusion?
A modest, reversible default can tolerate weaker evidence than a permanent denial of opportunity. A rule based on a fixed trait, with severe consequences and a history of discrimination, may be unacceptable even when the correlation is real.
## Religion is false and functional
I am practically atheist and technically agnostic. Religious cognition looks like ordinary social cognition operating outside its reliable range: we detect agency in ambiguous events and continue modeling minds after people die. Gods often resemble projected human minds with their limitations removed—especially the ego's limited agency transformed into omnipotence and its desire for recognition transformed into a demand for worship.
Religious institutions nevertheless do real work. They helped coordinate groups larger than face-to-face communities before modern states could do so. Belief in protective agency can also counter helplessness and depression by restoring a sense of possible action, even while it produces wasteful or destructive behavior when aimed at imaginary causes.
Religion and government are overlapping coordination systems. They substitute when both provide welfare, law, identity, and social enforcement; compete when they claim authority over the same domain; and complement one another when religion supplies legitimacy and shared norms while government supplies coercion and administration. Rising state capacity can displace some religious functions and contribute to secularization, but it is not the only cause.
My honest conclusion is that religion is false, serves important human functions, and often lacks good replacements. Removing the belief without replacing those functions can leave people worse off.
---
Source: /projects/
# Projects
Current and past projects.
- [Undreamed of](https://undreamedof.ai) — An AI-based interactive fiction game.
- [STRVCT](https://strvct.net) — A naked objects JavaScript framework for building client-side web apps.
- [Io](https://iolanguage.org) — A small, prototype-based programming language.
- [colvmn](https://colvmn.dev) — A minimal static-site layout engine.
- [GitHub](https://github.com/stevedekorte) — Open-source code and projects.
- **Local Apps** — Mini client-side browser apps.
- **Local AI Apps** — Client-side AI apps: models run in your browser.
- **Design** — Product & industrial design concepts.
- **918NA** — NA optimized Type 918 engine build.
- **Past Projects** — Older work.
---
Source: /projects/918NA/
---
title: 918NA
subtitle: NA optimized Type 918 engine build.
---
A naturally-aspirated conversion of the Lotus Type 918 V8, paired with a chassis upgrade. **These are first thoughts, not a finished spec** — a starting point to open the conversation with the builder.
**Build intent** — track-biased but street-usable, maximizing Type 918 character (throttle response, sound, high-rpm ITB feel). Priorities, in order:
1. Reliability / longevity — the 918 block is irreplaceable
2. Engine character
3. Drivability — usable from 3000 rpm, clean idle
4. Peak power
Power target 300–330 whp (≈ 345–385 hp at the crank, ~100–110 hp/L — F355/360-level specific output, which is a realistic ceiling for a ported 1990s turbo casting); bottom end, oil, and cooling spec'd for 400+ whp so the engine loafs at its actual output.
Secondary goal — replicability: documented so others on the platform can copy it, but only as a tiebreaker, not a priority.


## Build Sequence
1. Port heads → flow bench → actual numbers.
2. Spec cam against measured flow.
3. Piston-to-valve clearance → finalize piston dome (sets CR).
4. Plenum runner length around cam timing + rpm target.
5. Assemble → calibrate.
Cam / head / piston / plenum are coupled, so this order makes sense to me — but the sequencing is ultimately the builder's to set.
## Engine — Build Notes
### Bottom End
- Pistons: forged, custom — spec to target CR, ring pack, bore. Finalize dome **after** cam (see Build Sequence).
- Rods: billet H-beam; ARP2000 or Custom Age 625+ bolts.
- Bearings: coated, rod + main.
- Studs: ARP main + head throughout.
- Crank: inspect, polish, reuse if in spec; billet only if necessary.
- Balance: weight-matched, tight tolerance.
- Block: push-fit wet liners — reline as needed (off-the-shelf Westwood L5188 returns stock 83.00mm bore). Factory main caps are already cross-bolted SG iron; upgrade only if inspection warrants.
### Compression and Fuel
- Static CR: I'm thinking **11.0–11.5:1** — kept conservative because it has to stay pump-gas (91–93) safe with port/ITB injection, a 1990s chamber, and no DI charge cooling. A starting target, open to the builder's recommendation.
- Flex fuel, dual maps blended continuously on ethanol %. Pump-gas map: streetable + knock margin. E85 map: timing-advanced for max output. (My instinct is to gain E85 power through timing rather than a CR pump gas can't tolerate — but that's a builder/tuner call.)
- Knock is a low/mid-rpm, high-load issue (WOT near torque peak, lugging) — not high-rpm. Keep timing conservative there.
### Displacement
- Retain stock bore and displacement: 83mm × 81mm, 3506cc. Hone-and-refresh only; reline to stock bore if a cylinder needs it (push-fit wet liners — an established repair). No overbore, no stroke.
- Rationale (reinforced by the goal of a replicable build): one shareable piston/ring/gasket spec, works across variably-worn used cores, protects the finite supply of irreplaceable blocks, and keeps calibration and expected numbers transferable between builds.
- Overbore gain is marginal (~+2.4% at a +1mm cleanup); the meaningful 85–86mm version means custom wet liners with no documented precedent — not worth it as the default plan, least of all in a build others will copy. If that path is explored anyway, see *Larger Bore Options* below.
### Larger Bore Options (if explored)
The baseline above is stock bore. If more displacement is wanted anyway, this is the ladder and the process I'd follow — informed by what the block actually is.
**What the block actually is** (Lotus service notes; period engineering coverage): thin-wall sand-cast LM25TF aluminum, **open deck**, with **push-fit cast-iron wet liners** — spigotted into the block, seated on a flange near the bottom of the swept volume, sealed at the base with liquid sealant (Hylomar 3400 per the June 2000 service bulletin), and clamped in place by the heads. Liners are individually removable, and relining is an established repair: Westwood Cylinder Liners catalogs a finished 83.00mm ductile-iron 918 liner (part L5188). Bore centers are 96mm — a single period source; verify on the block.
**What that means for a bigger bore** — this is *not* a Darton-style dry resleeve into parent metal; it's **custom wet liners**. If the stock liner wall is thick enough, a larger ID at the stock OD requires no block machining at all. The liner's OD and wall thickness are published nowhere, so one measurement session answers most of the feasibility question. The constraints aren't "breaking into the water jacket" — they're liner wall thickness, the coolant annulus (coolant circulates fully around each liner; a larger OD shrinks it), the gasket sealing land between bores (13mm at stock, ~10mm at 86mm), and liner nip — the head clamp is part of liner retention, so liner and gasket specs are coupled.
**Why bore rather than stroke** — on a head-limited build, the real prize of a bigger bore isn't the displacement, it's unshrouding the valves: it buys the larger valves and seat work the heads otherwise can't take. Stroking does nothing for that and raises piston speed (the stock 81mm stroke at 8200 rpm is already ~22 m/s mean piston speed).
**Options, smallest to largest:**
| Bore | Displacement | Gain | Method |
|---|---|---|---|
| 83mm (stock) | 3506cc | — | Hone / refresh, or new stock liners (Westwood L5188) — the baseline plan |
| 83.5–84mm | 3548–3591cc | +1.2–2.4% | Bore the existing liners, if measured wall thickness allows |
| 85–86mm | 3677–3764cc | +4.9–7.4% | Custom wet liners — stock OD if wall allows; larger OD costs coolant annulus + seat machining |
| 87mm+ | 3852cc+ | +9.9%+ | Likely off the table — sealing land between bores thins at 96mm centers, and sealing rides on liner nip |
Power scales with displacement only if head flow scales with it — without the matching valve and port work, a bigger bore mostly just moves the torque peak down. Realistic gain at 86mm *with* the matching head work: roughly +15–25 whp over the stock-bore build.
**Process — gates, in order:**
1. Pull one liner and measure everything — OD, wall thickness, flange/spigot geometry, seat condition, jacket clearance. Liners are push-fit; this is cheap data (far cheaper than sonic-mapping a parent-bore block).
2. Verify the 96mm bore-center figure on the actual block — it's single-sourced.
3. Take the measurements to a liner maker — Westwood already produces the stock 918 liner and takes bespoke enquiries — and have them spec wall, OD, flange, and nip height for the target bore.
4. Custom MLS head gasket to the new bore (only the OEM-spec Elring set is catalogued; a custom Cometic-type is routine, but the liner-nip spec must be developed together with it).
5. If a larger liner OD is required: machining the liner seats is the one irreversible op on an irreplaceable casting — only with proven margin, torque plates fitted, block at temperature.
6. Cooling review — any OD increase shrinks the coolant annulus on an engine already spec'd for sustained track use.
7. Re-run the Build Sequence from step 1 — a bigger bore changes valve options, chamber shape, piston dome, CR, and cam targets.
**Costs and caveats** — there is **no documented precedent**: no surveyed Esprit V8 build has overbored, oversleeved, or stroked a 918, and the oft-repeated claim that Lotus designed in "+3mm of bore headroom toward 4 litres" did not survive source-checking — don't lean on it. This would be a first-of-its-kind job. Budget roughly +$5–12k and +2–3 months if the stock-OD liner path works; more if seats must be machined. Replicability survives better than a one-off overbore would suggest — a proven custom liner spec can simply be reordered — but the decision gate stands: measured liner and jacket numbers first, a liner maker willing to put their name on the spec, and head work that actually uses the displacement.
### Cylinder Heads (highest-risk item)
- Full inspection; valve job; guides as needed.
- Mild-to-moderate port — flow consistency and improvement within casting limits.
- Modest valve-size increase only if chamber/seat geometry allow.
- Flow-bench before and after — actual numbers, not projected.
- Lock cam profile and induction tuning **after** flow numbers, not before.
### Camshafts
- Custom NA grind, designed against measured head flow; match to target rpm + induction tuning.
- Adjustable timing (vernier gears / offset keys) for dyno.
- I'd lean dual springs over beehives for sustained 8000+ rpm; retainers (steel or Ti) per the final profile — the builder's call.
### Induction
- ITBs, off-the-shelf where possible (45–48mm), custom adapter manifolds to head ports. Bore and trumpet/runner lengths from VE targets at intended rpm.
- Sand-cast aluminum plenum (F355 aesthetic) — runner length/volume math first; velocity stacks matched to plenum; retain pattern for spares.
- Drive-by-wire throttle.
- Cold air rear-fed: Esprit side scoops → airboxes at the tail → forward to plenum (back-to-front, per F355). Airbox chassis-mounted, coupled to engine-mounted throttle bodies via flexible bellows.
- Accessory/belt drive is at the **front** of the engine (transaxle aft) — opposite end from the rear intake; route accordingly.
- Dual injectors per cylinder under consideration for E85 headroom.
- Clearance: stack + plenum height must clear engine cover / rear deck — mock up before finalizing geometry.
### Fuel and Ignition
- Standalone ECU (MoTeC / Cosworth Pectel / EFI Euro — tuner's call). Full custom harness.
- Individual coil-on-plug.
- Flex sensor; continuous ethanol-blended calibration.
- Load sensing: Alpha-N (TPS + rpm) or TPS/MAP hybrid — no usable MAP signal with ITBs.
- Wideband O2 per bank minimum; EGT optional for initial mapping.
- Per-cylinder knock detection where supported — backstop only (ITB / solid-valvetrain noise); base timing stays conservative.
- E85-capable fuel system end to end (pump, lines, seals, rails, regulator) sized for ~30–40% greater volume.
### Oil
- Dry sump. Scavenge staging per pan/crankcase — a 90° V8 typically wants 4+ scavenge stages + 1 pressure ("3+1" is a floor to validate).
- Oil tank with anti-aeration baffling. Thermostatic oil cooler, routed.
- Lower engine in chassis if mounts permit (CG).
### Cooling
- Upsized radiator core + improved ducting.
- Higher-flow water pump or supplementary electric pump.
- Dedicated transmission cooler (UN1).
- Proper bleed routing for mid-engine layout.
- Spec for sustained track use, not just street.
### Exhaust
- Custom equal-length headers, stainless or Inconel. Primary length to target rpm + flat-plane firing order.
- Merge collectors; X or H-pipe between banks (less critical with the flat-plane crank's even per-bank firing — builder's call).
- Modest muffler — streetable without killing the note.
- Wrap / ceramic coat for the tight bay.
### Brakes / Vacuum
- ITBs make little manifold vacuum → electric vacuum pump for the brake booster; delete or replace other vacuum-dependent accessories.
## Chassis — Build Notes
### Transmission
- Renault UN1 + full upgrade kit (gears, bearings, LSD). Setup by Lotus PBC. Dedicated cooler.
- Torque, not hp, is what breaks gearboxes — and the NA build's ~265–290 lb-ft sits below the 295 lb-ft Lotus capped the stock engine at for this box. The upgrade kit is for track duty, rpm, and shift abuse, not because the rating is exceeded.
### Suspension
- MCS 3-way adjustable dampers, front and rear.
- Spring rates / geometry around modern tire grip + use case.
- Corner-balance after all weight changes (dry-sump tank, plenum, headers) are final.
### Tires
- Modern compound (Cup 2 / Trofeo R / equivalent), staggered, grip-first.
## Open Items
Where builder experience matters most:
- **Head flow ceiling = dominant power variable.** 1990s turbo casting, no NA porting program; limited valve-size growth; risk of breaking into water/oil jackets on an irreplaceable core. Likely lands 290–320 whp; 320–350 only with favorable porting. (Calibration point: Ferrari's own 3.5L NA program — the F355, five valves per cylinder, no turbo-casting compromises — made 375 crank hp, ≈ 330 whp.)
- **Block is irreplaceable** — any crack, water-jacket corrosion, or main-saddle damage found at inspection could end the build. Protection: ARP studs, generous oil control, conservative static CR, knock detection as backstop.
- **Calibration:** one-off ITB flat-plane + flex = no base map. Budget ~40–80 hr dyno, refined over the first 1000–2000 miles.
## Targets (rough)
*My rough projections to frame expectations — the real numbers come from the builder's read on the heads and the dyno.*
| Metric | Pump Gas (91–93) | E85 |
|---|---|---|
| Peak power (whp) | 300–330 | 315–345 |
| Peak torque (wheel lb-ft) | 225–250 | 235–260 |
| Power peak (rpm) | 7600–8200 | 7800–8200 |
| Torque peak (rpm) | 6200–6800 | 6500–7000 |
| Redline | 8000–8200 | 8000–8200 |
- Crank torque lands around 265–290 lb-ft — *below* the 295 lb-ft Lotus capped the stock turbo engine at to protect the UN1. The character gain is response and rpm, not torque.
- Useful floor: Lotus's own NA design point for the 918 was 280 bhp @ 6800 rpm (possibly paper-only, never confirmed as running hardware). This build's porting, ITBs, cams, and +1400 rpm are what buy the gap from there to ~345–400 crank hp.
- E85 on an NA engine is worth ~3–6% (charge cooling + timing), not the transformative gains it gives boosted builds.
- Curb ~1380–1420 kg; ~245–290 hp/tonne at the crank (≈ 345–400 crank hp).
- Straight-line ≈ 996/997-era GT3 — comfortably ahead of any factory Esprit — with a more distinctive engine.
- Powerband (rough): tractable below 3000; building 3000–4500; alive 4500–6000; peak 6000–8200. Instant throttle, no lag.
## Timeline (rough)
*A rough placeholder — the builder's schedule and lead times replace this.*
- ~24 months (range 18–30) from contract to shakedown complete.
- Long poles: plenum pattern + casting (4–6 mo), custom rotating assembly, header fab (waits on engine mock-up), calibration.
## Build Status
*To be updated as the project progresses.*
- [ ] Contract signed with builder
- [ ] Engine removed and disassembled
- [ ] Block inspection complete
- [ ] Head flow benchmarking complete
- [ ] Rotating assembly machined
- [ ] Cam profile finalized
- [ ] Plenum pattern complete
- [ ] Plenum cast and machined
- [ ] Engine assembled
- [ ] Engine mock-up in chassis
- [ ] Initial calibration on dyno
- [ ] Shakedown miles begun
- [ ] Build considered complete
*Last updated: June 9, 2026*
---
Source: /projects/918NA/cost/
---
title: Cost Estimate
subtitle: Rough — engine program only.
---
*Stand-in numbers to frame the scope — the builder's quote replaces these.*
| Phase | Range |
|---|---|
| Engineering, design, mock-up (CAD, patterns, fixtures) | $8–15k |
| Teardown, inspection, machine work | $18–28k |
| Rotating assembly | $14–20k |
| Valvetrain and cams | $5–8k |
| Induction (ITBs, manifolds, cast plenum + pattern, airboxes, DBW) | $18–30k |
| Engine management + calibration (ECU, harness, sensors, 40–80 dyno hr) | $18–32k |
| Oil and cooling | $10–15k |
| Exhaust | $6–10k |
| Integration and assembly | $8–14k |
| Shakedown and refinement | $5–10k |
| **Total (incl. ~20% contingency)** | **$130–220k** |
Excludes suspension, UN1 upgrade + Lotus PBC labor, tires, brakes, bodywork, consumables. One-off programs at specialist shops routinely overrun — plan against the top of the range, not the middle. A larger-bore path (custom wet liners), if taken, adds roughly $5–12k on top — more if the liner seats must be machined for a larger OD.
---
Source: /projects/aiapps/
# Local AI Apps
Test apps to demo SOTA in-browser AI models. Updated periodically.
- **Media to Text** — Extract text from an image, or transcribe audio or video.
- **Live Speech to Text** — Transcribe speech from your mic into notes in real time.
- **Text to Speech** — Turn text into natural-sounding speech.
- **Language Translation** — Auto-detect a language and translate it.
- **Text to Image Demo** — Generate images from a text prompt.
- **Music Generation** — Compose short music clips from a text prompt.
- **Chat Demo** — Chat with an open language model.
---
Source: /projects/apps/
# Local Apps
Browser-based tools that run entirely client-side.
- **Media Converter** — Convert audio, video & image files.
- **Postcard** — Drop in photos, edit, and download a postcard.
- **Crypt** — Encrypt & decrypt files.
---
Source: /projects/design/
# Design
Product & industrial design concepts.
- **Inference Appliances** — Design concepts inspired by the CM5 supercomputer.
- **TouchTable** — A drafting-table touch display for design and drawing.
---
Source: /projects/design/IA/
# Inference Appliances
Design concepts inspired by the CM5 supercomputer.
---
Source: /projects/design/TouchTable/
# TouchTable
A large-format drafting-table touch display for design and drawing.
---
Source: /projects/past%20projects/
# Past Projects
Older work.
- **Voluntary** — Decentralization-focused apps for MacOS (no longer supported).
- [BareMetal](https://store.steampowered.com/app/674130/Bare_Metal/) — A minimal fast-paced tug-of-war strategy game.
- **Protein Folding** — An in-browser protein folding app.
---
Source: /projects/past%20projects/Voluntary/
# Voluntary
Decentralization-focused apps for MacOS (no longer supported).
- **Bitmarkets** — Fully peer-to-peer markets with no trusted third parties.
- **Bitpost** — Private, decentralized messaging.
- **Crypt** — Drag-and-drop file encryption.
- **TorBar** — Run a Tor relay from your menu bar.
---
Source: /projects/past%20projects/Voluntary/Bitmarkets/
# Bitmarkets
Fully peer-to-peer markets with no trusted third parties.
Bitmarkets was a fully peer-to-peer marketplace with no trusted third parties. It used the Bitmessage network for posts and buyer/seller communication, and the Bitcoin network for payments — making transactions decentralized and anonymous.
[Source on GitHub →](https://github.com/VoluntaryLabs/Bitmarkets)
- **White Paper** — Non-technical overview of how the client and protocol work.
- **Protocol** — Message types and transaction flow specs.
- [Slides](Bitmarkets.pdf) — Presentation slides.
---
Source: /projects/past%20projects/Voluntary/Bitmarkets/protocol/
---
title: Protocol
subtitle: The message types and transaction flow behind the Bitmarkets marketplace.
---
## Overview
Bitmarkets is a protocol and example client for a decentralized marketplace which uses [Bitcoin](https://bitcoin.org) as its currency and [Bitmessage](https://bitmessage.org) as its transport. Mutual security deposits between buyer and seller are used to align incentives for completing transactions without the need for either reputation systems or trusted third parties.
This page describes the wire protocol: the message format, the message types, and the order in which they are exchanged over the course of a transaction. For a non-technical overview, see the [White Paper](../whitepaper/index.html).
## Message Format
Each message is a JSON dictionary. Every dictionary contains a `_type` field naming the message type, plus additional fields that depend on that type.
- Text strings are [UTF-8](https://en.wikipedia.org/wiki/UTF-8) encoded.
- Strings carrying binary data are [Base64](https://en.wikipedia.org/wiki/Base64) encoded.
- Date fields use [Unix time](https://en.wikipedia.org/wiki/Unix_time) (seconds since 1970 UTC).
In the examples below, long field values are abbreviated to their first few characters followed by `...` for readability.
## Transaction Flow
A complete sale moves through four phases — posting, escrow lock, delivery, and either payment or refund. Each cell below shows one message and the direction it travels.
| Step | seller → channel | seller → buyer | buyer → seller | → bitcoin |
|---|---|---|---|---|
| 1 | post | | | |
| 2 | | | bid | |
| 3 | close post | accept bid | | |
| 4 | | lock escrow 1 | | |
| 5 | | | lock escrow 2 | |
| 6 | | | | lock escrow 3 (seller) |
| 7 | | | delivery info | |
| 8 | | | unlock escrow 1 | |
| 9 | | unlock escrow 2 | | |
| 10 | | | | unlock escrow 3 (buyer) |
The three "lock escrow" steps build a single Bitcoin multi-signature transaction holding both deposits plus the payment: the seller sends a partial transaction with their deposit (`SellLockEscrowMsg`), the buyer adds their deposit and the payment, signs, and returns it (`BuyLockEscrowMsg`), then the seller signs and broadcasts it. The three "unlock escrow" steps build and broadcast the release transaction the same way but reversed: the buyer initiates (`BuyPaymentMsg`), the seller signs and returns it (`SellAcceptPaymentMsg`), then the buyer broadcasts. The refund path mirrors payment, returning the deposits to each party and the payment to the buyer.
## Message Types
### Posting
Sellers post sales to a particular Bitmessage channel (a publicly known address) where they are picked up and browsed by other clients. This channel model also enables private markets: a hard-to-guess channel name (e.g. a large random number) lets only those who know the secret name send or receive messages.
#### PostMsg
Sent from seller to channel to post a sale.
```json
{
"_type": "PostMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"dateNumber": 1409004883,
"payload": {
"postUuid": "B160...",
"regionPath": ["North America", "US"],
"categoryPath": ["Electronics", "Laptops"],
"title": "Macbook Air 13\" 128GB",
"priceInSatoshi": 100000,
"sellerAddress": "BM-2cVr...",
"description": "Test",
"attachments": []
}
}
```
#### BidMsg
Sent from buyer to seller in response to a sale post.
```json
{
"_type": "BidMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409004919
}
```
#### ClosePostMsg
Sent from seller to channel after accepting a bid or cancelling the sale, in order to remove the post.
```json
{
"_type": "ClosePostMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"dateNumber": 1409004929
}
```
#### AcceptBidMsg
Sent from seller to buyer to accept a bid.
```json
{
"_type": "AcceptBidMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409004929
}
```
#### RejectBidMsg
Sent from seller to every potential buyer other than the one accepted, after accepting a bid.
```json
{
"_type": "RejectBidMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409004929
}
```
### Escrow Lock
If the seller accepts a purchase request, buyer and seller together construct a Bitcoin escrow lock transaction in which each adds a security deposit and the buyer adds the payment amount. The transaction is built so the funds are unspendable by either party until both sign another transaction to release them.
#### SellLockEscrowMsg
Sent from seller to buyer. Contains an incomplete multi-signature transaction with the seller's unspent inputs for their security deposit.
```json
{
"_type": "SellLockEscrowMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409005057,
"payload": {
"type": "BNTx",
"txHash": null,
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "0851...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": null
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 110000,
"scriptPubKey": {
"type": "BNMultisigScriptPubKey",
"pubKeys": ["0389...", "0389..."]
}
}
],
"updateTime": null,
"fee": null,
"confirmations": null,
"error": null
}
}
```
#### BuyLockEscrowMsg
Sent from buyer to seller. Contains the multi-signature transaction including the buyer's inputs (for their security deposit and the payment) and the buyer's signature. On receipt the seller adds their signature and broadcasts the transaction to the Bitcoin network. Both parties watch the network to confirm the escrow transaction.
```json
{
"_type": "BuyLockEscrowMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409005067,
"payload": {
"type": "BNTx",
"txHash": "c0b1...",
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "0851...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": null
},
{
"type": "BNTxIn",
"previousTxHash": "19e4...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": {
"type": "BNScriptSig",
"programHexBytes": "4730...",
"isMultisig": false
}
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 310000,
"scriptPubKey": {
"type": "BNMultisigScriptPubKey",
"pubKeys": ["0389...", "02ff..."]
}
}
],
"updateTime": 0,
"netValue": -320000,
"serializedHex": "0100...",
"fee": 10000,
"confirmations": 0,
"error": null
}
}
```
**Cancellation.** The client supports cancelling the lock on either side by broadcasting a transaction that sends one's own inputs back to oneself. Cancellation only works if the escrow lock transaction has not already been broadcast to the Bitcoin network.
### Delivery
After the buyer's client sees the escrow lock transaction confirmed on the blockchain, it prompts the buyer to send the seller their delivery details.
#### BuyerAddressMsg
Sent from buyer to seller. Contains the address to which the good or service should be delivered. The seller views this address from their client.
```json
{
"_type": "BuyerAddressMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409007460,
"payload": {
"addressee": "Me",
"address1": "Here",
"address2": "SF",
"country": " "
}
}
```
### Payment
After the seller provides the good or service, the buyer constructs an escrow release transaction that returns the security deposits to their respective parties and sends the payment to the seller. The seller signs and broadcasts it to accept payment.
#### BuyPaymentMsg
Sent from buyer to seller. Contains an incomplete multi-signature transaction making payment to the seller and returning the security deposits.
```json
{
"_type": "BuyPaymentMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409007687,
"payload": {
"type": "BNTx",
"txHash": null,
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "f9b2...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": null
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 103333,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "1MLps..."
}
}
],
"updateTime": null,
"fee": null,
"confirmations": null,
"error": null
}
}
```
#### SellAcceptPaymentMsg
Sent from seller to buyer with the completed payment transaction. The buyer broadcasts it on the Bitcoin network.
```json
{
"_type": "SellAcceptPaymentMsg",
"postUuid": "B160...",
"sellerAddress": "BM-2cVr...",
"buyerAddress": "BM-2cVr...",
"dateNumber": 1409007722,
"payload": {
"type": "BNTx",
"txHash": "3178...",
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "f9b2...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": {
"type": "BNScriptSig",
"programHexBytes": "0047...",
"isMultisig": true
}
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 103333,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "1MLps..."
}
},
{
"type": "BNTxOut",
"value": 196666,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "1AiRT..."
}
}
],
"updateTime": 0,
"netValue": 299999,
"serializedHex": "0100...",
"fee": 10000,
"confirmations": 0,
"error": null
}
}
```
### Refund
If the good or service is not provided, the buyer can request a refund: a transaction that returns the security deposits to their respective parties and returns the payment to the buyer. If the seller agrees, they sign and broadcast it.
#### BuyRefundRequestMsg
Sent from buyer to seller with the first half of the refund transaction.
```json
{
"_type": "BuyRefundRequestMsg",
"postUuid": "1F343...",
"sellerAddress": "BM-2cTEk...",
"buyerAddress": "BM-2cTEk...",
"dateNumber": 1410879639,
"payload": {
"type": "BNTx",
"txHash": null,
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "9749d...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": null
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 306666,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "1JUFU..."
}
}
],
"updateTime": null,
"fee": null,
"confirmations": null,
"error": null
}
}
```
#### SellAcceptRefundRequestMsg
Sent from seller to buyer with the completed refund transaction. The buyer broadcasts it on the Bitcoin network.
```json
{
"_type": "SellAcceptRefundRequestMsg",
"postUuid": "1F3439...",
"sellerAddress": "BM-2cTEk...",
"buyerAddress": "BM-2cTEk...",
"dateNumber": 1410880002,
"payload": {
"type": "BNTx",
"txHash": "5a9f4...",
"inputs": [
{
"type": "BNTxIn",
"previousTxHash": "9749d...",
"previousOutIndex": 0,
"previousTxSerializedHex": "0100...",
"scriptSig": {
"type": "BNScriptSig",
"programHexBytes": "0047...",
"isMultisig": true
}
}
],
"outputs": [
{
"type": "BNTxOut",
"value": 306666,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "1JUFU..."
}
},
{
"type": "BNTxOut",
"value": 143333,
"scriptPubKey": {
"type": "BNPayToAddressScriptPubKey",
"address": "12875..."
}
}
],
"updateTime": 0,
"netValue": 449999,
"serializedHex": "0100...",
"fee": 10000,
"confirmations": 0,
"error": null
}
}
```
*This content is in the public domain.*
---
Source: /projects/past%20projects/Voluntary/Bitmarkets/whitepaper/
---
title: White Paper
subtitle: A non-technical overview of how the Bitmarkets client and protocol work.
---
## Introduction
Bitmarkets is an open source protocol and free client for a decentralized marketplace which uses [Bitcoin](https://bitcoin.org/) as its currency and [Bitmessage](https://bitmessage.org/) as its communications network. Mutual security deposits between buyer and seller on individual transactions are used to ensure incentives are aligned for completing market transactions without the need for either reputation systems or 3rd party escrow agents.
This document is a non-technical overview of how the Bitmarkets client and protocol work. For more technical details, see the [Bitmarkets protocol specification](https://voluntary.net/bitmarkets/protocol/).
## Motivation
Existing centralized marketplaces and payment services extract high fees, impose and abuse excessive control and remove any hope of privacy from users. As more commerce moves online, many consumers may find their lifetime history of purchases (including books, personal items and location details) for sale to advertisers, employers, curious neighbors, stalkers, political opponents and government agencies.
An ideal system would be one of secure private transactions directly between buyer and seller without middle men collecting data or adding fees. Such systems are now feasible by combining recently developed technologies for anonymous decentralized payment and messaging systems.
## Implementation
### Architecture