Making a start on Hilbert Spaces and matrix calculations using CPU

Mike's Notes

Working notes on finding a way for Pipi to use genetic algorithms with Hilbert Spaces and matrix calculations. A desktop exercise with Google at the moment. Computational experiments on CPU to come. Some generated Python and CFML sample code below to start playing with. 

It looks promising; it might help address limitations of other methods for using fitness landscapes. The output curves do look better.

This might void the need to use a Cerebras wafer for these fitness landscape calculations.

The next step is to watch free maths lectures on YouTube, then do a lot of drawings and process diagrams. Then play with code and see what happens. 😎

The maths formulas were in LaTeX format and were converted to non-LaTeX format using the free online LatexConverter.

Note

Nothing has been verified or tested. 😎

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

03/09/2026

Making a start on Hilbert Spaces and matrix calculations using CPU

By: Mike Peters & Google Search AI Mode
On a Sandy Beach: 30/08/2026

Mike Peters: Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Google Search AI Mode: Free and surprisingly good.

...

Hilbert Spaces

Hilbert spaces use matrix calculations extensively, especially when the space is finite-dimensional or when dealing with linear operators. Here is how they connect:

  1. Finite-Dimensional Spaces
    • Direct Equivalence: An (n)-dimensional Hilbert space is isomorphic to (ℂⁿ) (complex numbers) or (ℝⁿ) (real numbers).
    • Vectors: Elements in the space are represented as column vectors.
    • Operators: Linear operators acting on the space are represented as (n × n) matrices.
    • Inner Product: The inner product is calculated using matrix multiplication (specifically, the conjugate transpose of a vector multiplied by another vector).
  2. Infinite-Dimensional Spaces
    • Infinite Matrices: In infinite-dimensional Hilbert spaces (like L²), the space of square-integrable functions, operators can be represented as infinite matrices.
    • Basis Dependence: By choosing an orthonormal basis, any linear operator can be written as a matrix with infinitely many rows and columns.
  3. Quantum Mechanics (Matrix Mechanics)
    • State Vectors: Quantum states are vectors in a Hilbert space.
    • Observables: Physical properties (like position, momentum, or spin) are Hermitian operators.
    • Heisenberg's Formulation: Werner Heisenberg's formulation of quantum mechanics is literally called "matrix mechanics" because it uses matrix calculations to solve Hilbert space problems.

In machine learning, Hilbert spaces—specifically Reproducible Kernel Hilbert Spaces (RKHS)—rely heavily on matrix calculations to make complex, non-linear data linearly separable.

Instead of explicitly mapping data points to an infinite-dimensional space, ML algorithms use the Kernel Trick to compute everything via an N × N matrix, where N is the number of data samples.

The Gram (Kernel) Matrix

The core matrix calculation in RKHS is the Gram Matrix (or Kernel Matrix), denoted as K.

  • Formula: (Kᵢⱼ = k(xᵢ, xⱼ) = ⟨ Φ(xᵢ), Φ(xⱼ) ⟩_{H})
  • Meaning: Each entry i,j is the inner product of data points (xᵢ) and (xⱼ) in the Hilbert space (H).
  • Properties: It is always a symmetric and positive semi-definite (PSD) matrix.

Core Matrix Operations in RKHS

Machine learning algorithms manipulate this kernel matrix using standard linear algebra:

  • Matrix Inversion: Used in Kernel Ridge Regression to solve for weights: (Kv = λ v).
  • Eigenvalue Decomposition: Used in Kernel PCA to find non-linear principal components by solving (Kv = λ v).
  • Quadratic Programming: Used in Support Vector Machines (SVMs) to maximise margins using matrix-vector products involving (K).

Computational Bottlenecks

Because (K) scales with the number of data points, scaling Hilbert space methods requires specialised matrix approximations:

  • Nyström Approximation: Factorises a low-rank sub-matrix to approximate the massive N × N matrix.
  • Random Fourier Features: Avoids the exact matrix calculation entirely by mapping data into a randomised, lower-dimensional space.

Graph image

Genetic Algorithms

Combining genetic algorithms (GAs) with Reproducing Kernel Hilbert Spaces (RKHS) is entirely possible, highly effective, and actively used in machine learning research.

In this hybrid framework, the fitness landscape is modelled as a continuous function belonging to an RKHS. This approach addresses a major limitation of traditional GAs: evaluating an individual's true fitness can be computationally expensive (e.g., running a physics simulation or a wet-lab experiment). The RKHS serves as an intelligent surrogate model.

Graph image

Core Mathematical Engines At Work

To make this framework highly effective, three core components work in tandem:

  • The Representer Theorem: This is the mathematical backbone of your RKHS surrogate. It guarantees that your continuous fitness approximation (̂{f}(x)) can be written as a finite linear combination of kernel evaluations centred at your sampled points:

(ᶠ(x)=∑ ᵢ₌₁ᴺα ᵢK(x,xᵢ))

  • This scales the search space completely independently of its true dimensionality, reducing prediction cost to a simple (O(N)) vector dot product.
  • Informed Exploration vs. Exploitation: Instead of letting the GA evaluate individuals blindly on the surrogate, you can use the RKHS variance (uncertainty) to construct an Acquisition Function (like Expected Improvement or Upper Confidence Bound). The GA then maximises this acquisition function rather than the raw estimated fitness, forcing the algorithm to intelligently search unmapped areas of the landscape.
  • Gram Matrix Regularisation: As new true data points are evaluated, they enter the Gram Matrix. To prevent numerical instability or overfitting as (N) grows, a small regularisation ridge ((λ I)) is maintained, smoothly adjusting the landscape's rigidity without rebuilding the framework from scratch.

How the Combination Works

[GA Population] ---> [Evaluate on RKHS Surrogate] ---> [Select & Crossover] ^ | |__________________ [Update RKHS with True Data] _________|


  1. The RKHS as the Fitness Landscape: You treat the unknown fitness landscape (f(x)) as a smooth function within an RKHS. By evaluating a small set of initial points, you use Kernel Ridge Regression or Kriging (Gaussian Process Regression) to build a continuous, analytical approximation of the landscape.
  2. Genetic Search on the Surrogate: The GA searches this approximated RKHS landscape. Because evaluating the RKHS kernel matrix is mathematically cheap (O(N)) for a new prediction, the GA can evolve through thousands of generations in seconds.
  3. Adaptive Sampling (Bayesian Optimisation): The best candidates found by the GA are evaluated using the true, expensive fitness function. These new data points are added back into the Gram matrix, updating the RKHS landscape to make it more accurate where it matters most.

Key Advantages of This Hybrid Approach

  • Global Search in Infinite Dimensions: Traditional GAs struggle with high-dimensional continuous spaces. By mapping the search space into an RKHS via a kernel (like the Gaussian RBF kernel), the GA implicitly searches a highly expressive, infinite-dimensional feature space.
  • Guaranteed Smoothness: Functions in an RKHS are mathematically smooth and bounded [6]. This eliminates extreme, discontinuous noise in the fitness landscape, allowing the GA to find gradient-like paths toward global optima without getting trapped in microscopic local minima.
  • Exact Kernel Alignment: You can use a GA to optimise the hyperparameters of the RKHS kernel itself (e.g., finding the optimal length-scale (σ ) of an RBF kernel) to perfectly align the geometry of the Hilbert space with your actual problem landscape.

Real-World Use Cases

  • Protein Design & Biochemistry: Designing new molecules where the "fitness" is binding affinity. The RKHS models the chemical landscape based on known proteins, and the GA mutates amino acid sequences to find optimal binders.
  • Hyperparameter Optimisation: Optimising complex neural network architectures where the evaluation landscape is highly non-linear and expensive to compute.
  • Robotics Control: Evolving locomotion parameters for robotics where physical testing is slow or dangerous.

Implementation Challenges

  • The Matrix Bottleneck Returns: As your GA discovers more points and updates the RKHS landscape, your Gram matrix (K) grows. Inverting this matrix to update the landscape scales at O(N³). You will need to use Nyström approximations or sparse online kernel methods if your total evaluation points exceed 10,000.
  • Exploration vs. Exploitation: GAs are aggressive exploiters. If your RKHS surrogate model is inaccurate in an unexplored region, the GA might get stuck optimising a "fake" peak. You must include an uncertainty metric (like the variance in a Gaussian Process) to force the GA to explore unknown areas.

Kernel Ridge Regression or Kriging (Gaussian Process Regression)

Kernel Ridge Regression (KRR) and Kriging (Gaussian Process Regression, or GPR) are both kernel-based methods for learning non-linear functions from data, but they differ fundamentally in their underlying statistical framework, objective functions, and outputs.

Key Differences

  • Core Approach: KRR minimises a regularised mean-squared error loss function in a Reproducing Kernel Hilbert Space (RKHS). GPR uses a probabilistic (Bayesian) approach, defining a Gaussian process prior over functions and updating it with a likelihood function based on observed data.
  • Uncertainty Estimation: KRR outputs point predictions only. GPR (and Kriging) naturally quantifies uncertainty, providing full posterior distributions, variance estimates, and confidence intervals.
  • Hyperparameter Optimisation: KRR typically optimises kernel parameters using grid search with cross-validation on a loss function. GPR optimises hyperparameters via gradient ascent on the marginal likelihood.
  • Terminology & Origin: Kriging originated in geostatistics (mining) to find the Best Linear Unbiased Predictor (BLUP), whereas GPR stems from machine learning and stochastic processes. Mathematically, standard Kriging is equivalent to GPR under matching covariance and prior assumptions

When to Use Which

  • Use Kernel Ridge Regression when: You need a fast, deterministic, regularised non-linear regressor and do not require predictive uncertainty bounds.
  • Use Kriging / Gaussian Process Regression when: You need confidence intervals for predictions, want to optimise hyperparameters via marginal likelihood, or are modelling spatial/geostatistical data.

Python Code (not tested)

Here is a clean, modular Python template using scikit-learn to stitch a Genetic Algorithm loop to a Gaussian Process (RKHS surrogate) framework.

import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern

# --- 1. CONFIGURATION & SIMULATION BACKEND ---
BOUNDS = np.array([[-5.0, 5.0], [-5.0, 5.0]])  # 2D search space boundaries
N_DIM = BOUNDS.shape[0]
POP_SIZE = 20
GENERATIONS = 10
SURROGATE_MAX_ITER = 5   # Active learning/Bayesian optimization loops

def true_expensive_fitness(x):
    """
    Represents your expensive simulation or physical experiment.
    Expects a 1D array of shape (N_DIM,). Returns a scalar.
    """
    # Example: Multi-modal Ackley function (minimization converted to maximization)
    return -1 * (20 * np.exp(-0.2 * np.sqrt(0.5 * np.sum(x**2))) + 
                 np.exp(0.5 * np.sum(np.cos(2 * np.pi * x))) - 20 - np.e)

# --- 2. SURROGATE MODEL (RKHS / GAUSSIAN PROCESS) ---
# Using Matérn kernel with explicit noise handling (alpha) as regularization
kernel = Matern(nu=2.5)
surrogate = GaussianProcessRegressor(kernel=kernel, alpha=1e-6, normalize_y=True, random_state=42)

# --- 3. GENETIC ALGORITHM CORE ENGINE (OPERATING ON SURROGATE) ---
def init_population(pop_size, bounds):
    return np.random.uniform(bounds[:, 0], bounds[:, 1], size=(pop_size, len(bounds)))

def crossover(parent1, parent2):
    # Blend crossover (BLX-alpha)
    alpha = 0.5
    gamma = (1 + 2 * alpha) * np.random.random(size=N_DIM) - alpha
    return parent1 + gamma * (parent2 - parent1)

def mutate(individual, bounds, rate=0.2, scale=0.5):
    for i in range(len(individual)):
        if np.random.random() < rate:
            individual[i] += np.random.normal(0, scale)
            individual[i] = np.clip(individual[i], bounds[i, 0], bounds[i, 1])
    return individual

def run_ga_on_surrogate(model, bounds, pop_size, generations):
    """
    Standard GA that queries the cheap RKHS surrogate model instead of the true fitness.
    """
    population = init_population(pop_size, bounds)
    
    for _ in range(generations):
        # O(N) evaluation using the trained kernel model
        # predict() returns (mean, std). We maximize the predicted mean fitness.
        fitnesses, _ = model.predict(population, return_std=True)
        
        # Rank-based selection
        idx = np.argsort(fitnesses)[::-1]
        population = population[idx]
        
        # Breed next generation
        next_gen = list(population[:2])  # Elitist preservation
        while len(next_gen) < pop_size:
            p1, p2 = population[np.random.randint(0, 5)], population[np.random.randint(0, 5)]
            child = crossover(p1, p2)
            child = mutate(child, bounds)
            next_gen.append(child)
            
        population = np.array(next_gen)
        
    # Return best candidate found by GA in this surrogate landscape
    best_idx = np.argmax(model.predict(population, return_std=False))
    return population[best_idx]

# --- 4. THE ACTIVE LEARNING HYBRID LOOP ---
# Step A: Initialize with a small Latin Hypercube or random experimental design
X_train = init_population(pop_size=10, bounds=BOUNDS)
y_train = np.array([true_expensive_fitness(x) for x in X_train])

print("Starting Hybrid GA-RKHS Optimization Engine...\n")

for loop in range(SURROGATE_MAX_ITER):
    print(f"--- Iteration {loop + 1}/{SURROGATE_MAX_ITER} ---")
    print(f"Gram Matrix Size: {X_train.shape[0]} points")
    
    # Step B: Fit/Update RKHS surrogate model
    surrogate.fit(X_train, y_train)
    
    # Step C: Let the GA aggressively explore the surrogate landscape
    # This costs thousands of operations but takes milliseconds
    proposed_candidate = run_ga_on_surrogate(surrogate, BOUNDS, POP_SIZE, GENERATIONS)
    
    # Step D: Adaptive Sampling (Evaluate the candidate on the true simulation)
    true_score = true_expensive_fitness(proposed_candidate)
    print(f"GA Proposed Vector: {np.round(proposed_candidate, 4)}")
    print(f"True Fitness Score: {true_score:.4f}")
    
    # Step E: Augment data (Updates the Gram matrix for the next iteration)
    X_train = np.vstack([X_train, proposed_candidate])
    y_train = np.append(y_train, true_score)
    print(f"Current Best Score Found: {np.max(y_train):.4f}\n")

print("Optimization Complete.")

Enhancements 

  • Regularisation (Ridge): The alpha=1e-6 in GaussianProcessRegressor serves as the λI identity-matrix offset. This prevents numerical inversion crashes if the GA proposes points structurally close to existing data.
  • Normalisation Engine: normalize_y=True transforms unstable fitness functions to a standard normal distribution mapping, stabilising kernel hyperparameter tuning during .fit().
  • Scalability Hand-off: run_ga_on_surrogate can run for massive populations or generations; it never interacts with true_expensive_fitness, protecting your heavy computation budget.

CFML Code (not tested)

<cfscript>
/**
 * CFML Hybrid GA-RKHS Optimization Engine
 */

// --- 1. CONFIGURATION & CONFIG MATRIX ---
variables.bounds = [ {min: -5.0, max: 5.0}, {min: -5.0, max: 5.0} ]; // 2D Search Space
variables.popSize = 20;
variables.generations = 10;
variables.surrogateMaxIter = 5;

/**
 * Represents your expensive simulation or backend physical experiment.
 * Minimisation problem converted to Maximisation.
 */
public numeric function trueExpensiveFitness(required array x) {
    // Standard multi-modal benchmark proxy
    var sumSq = 0;
    var sumCos = 0;
    var n = arrayLen(arguments.x);
    
    for (var i = 1; i <= n; i++) {
        sumSq += arguments.x[i] ^ 2;
        sumCos += cos(2 * pi() * arguments.x[i]);
    }
    
    var term1 = -20.0 * exp(-0.2 * sqrt(0.5 * sumSq));
    var term2 = -exp(0.5 * sumCos);
    return -1 * (term1 + term2 - 20 - exp(1));
}

// --- 2. SURROGATE ENGINE (Continuous Analytical Proxy) ---
/**
 * Approximates f(x) using existing Gram dataset via standard RBF/IDW Kernel.
 */
public numeric function predictSurrogateFitness(required array x, required array xTrain, required array yTrain) {
    var totalWeight = 0;
    var weightedSum = 0;
    var p = 2; // Power parameter for spatial continuity
    var regularizationRidge = 1e-6; // Prevents division by zero on exact matches
    
    for (var i = 1; i <= arrayLen(arguments.xTrain); i++) {
        var distSq = 0;
        for (var d = 1; d <= arrayLen(arguments.x); d++) {
            distSq += (arguments.x[d] - arguments.xTrain[i][d]) ^ 2;
        }
        var dist = sqrt(distSq) + regularizationRidge;
        var weight = 1.0 / (dist ^ p);
        
        totalWeight += weight;
        weightedSum += weight * arguments.yTrain[i];
    }
    
    return weightedSum / totalWeight;
}

// --- 3. GENETIC ALGORITHM CORE ENGINE (OPERATING ON CHEAP SURROGATE) ---
public array function initPopulation(required numeric popSize, required array bounds) {
    var pop = [];
    for (var i = 1; i <= arguments.popSize; i++) {
        var ind = [];
        for (var d = 1; d <= arrayLen(arguments.bounds); d++) {
            arrayAppend(ind, rand() * (arguments.bounds[d].max - arguments.bounds[d].min) + arguments.bounds[d].min);
        }
        arrayAppend(pop, ind);
    }
    return pop;
}

public array function crossover(required array p1, required array p2) {
    var child = [];
    var alpha = 0.5; // Blend Crossover parameter
    for (var d = 1; d <= arrayLen(arguments.p1); d++) {
        var gamma = (1 + 2 * alpha) * rand() - alpha;
        arrayAppend(child, arguments.p1[d] + gamma * (arguments.p2[d] - arguments.p1[d]));
    }
    return child;
}

public array function mutate(required array individual, required array bounds, numeric rate=0.2, numeric scale=0.5) {
    var mutated = duplicate(arguments.individual);
    for (var d = 1; d <= arrayLen(mutated); d++) {
        if (rand() < arguments.rate) {
            // Box-Muller transform for normal distribution mutation
            var u1 = rand(); var u2 = rand();
            if(u1 == 0) u1 = 0.0001;
            var normalRandom = sqrt(-2.0 * log(u1)) * cos(2.0 * pi() * u2);
            
            mutated[d] += normalRandom * arguments.scale;
            // Clip boundaries
            if (mutated[d] < arguments.bounds[d].min) mutated[d] = arguments.bounds[d].min;
            if (mutated[d] > arguments.bounds[d].max) mutated[d] = arguments.bounds[d].max;
        }
    }
    return mutated;
}

public array function runGaOnSurrogate(required array xTrain, required array yTrain, required array bounds, required numeric popSize, required numeric generations) {
    var population = initPopulation(arguments.popSize, arguments.bounds);
    
    for (var gen = 1; gen <= arguments.generations; gen++) {
        // Evaluate complete generation instantly on the analytical surrogate proxy
        var scoredPop = [];
        for (var i = 1; i <= arrayLen(population); i++) {
            arrayAppend(scoredPop, {
                vector: population[i],
                score: predictSurrogateFitness(population[i], arguments.xTrain, arguments.yTrain)
            });
        }
        
        // Rank-based Sort Descending
        arraySort(scoredPop, function(a, b) {
            return b.score > a.score ? 1 : (b.score < a.score ? -1 : 0);
        });
        
        // Rebuild next generation
        var nextGen = [ scoredPop[1].vector, scoredPop[2].vector ]; // Elitist strategy
        while (arrayLen(nextGen) < arguments.popSize) {
            var parent1 = scoredPop[randRange(1, 5)].vector;
            var parent2 = scoredPop[randRange(1, 5)].vector;
            var child = crossover(parent1, parent2);
            child = mutate(child, arguments.bounds);
            arrayAppend(nextGen, child);
        }
        
        // Update population pointer
        for (var k = 1; k <= arrayLen(nextGen); k++) {
            population[k] = nextGen[k];
        }
    }
    
    // Return best vector from final generation iteration
    return population[1];
}

// --- 4. EXECUTING THE HYBRID SEED LOOP ---
writeOutput("Starting CFML Hybrid GA-RKHS Optimization Engine...<br><br>");

// Step A: Initialize Gram Dataset
variables.X_train = initPopulation(10, variables.bounds);
variables.y_train = [];
for (var i = 1; i <= arrayLen(variables.X_train); i++) {
    arrayAppend(variables.y_train, trueExpensiveFitness(variables.X_train[i]));
}

// Step B: Active Learning Global Intercept Loop
for (var loop = 1; loop <= variables.surrogateMaxIter; loop++) {
    writeOutput("--- Iteration #loop#/#variables.surrogateMaxIter# ---<br>");
    writeOutput("Gram Matrix Dataset Size: " & arrayLen(variables.X_train) & " points<br>");
    
    // Step C: Let the GA scan the math surrogate space aggressively
    var proposedCandidate = runGaOnSurrogate(variables.X_train, variables.y_train, variables.bounds, variables.popSize, variables.generations);
    
    // Step D: Run costly physical simulation check on candidate
    var trueScore = trueExpensiveFitness(proposedCandidate);
    
    writeOutput("GA Proposed Vector: [" & arrayToList(proposedCandidate, ", ") & "]<br>");
    writeOutput("True Real-World Fitness Score: " & numberFormat(trueScore, "0.0000") & "<br>");
    
    // Step E: Augment data matrices
    arrayAppend(variables.X_train, proposedCandidate);
    arrayAppend(variables.y_train, trueScore);
    
    writeOutput("Current System Best Score: " & numberFormat(arrayMax(variables.y_train), "0.0000") & "<br><br>");
}

writeOutput("Optimization Execution Cycle Terminated.");
</cfscript>

Key Architectural Shifts in the CFML Variant

  • Script-Only Architecture: Written purely within <cfscript> blocks to remove legacy tag overhead and maximise processing throughput for vector arithmetic loops.
  • Native Box-Muller Generator: Because ColdFusion’s native rand() produces a flat uniform distribution, a standard Box-Muller transformation was written directly into the mutate() method to correctly inject normal (Gaussian) distribution mutations.
  • Surrogate Mapping Array Matrix: Replaces Python arrays with native array structs. The predictSurrogateFitness method models continuous field behaviours natively via distances weighted dynamically across the current known points.

Lec 50 Kernel Ridge Regression (KRR)

NPTEL - Indian Institute of Science, Bengaluru

YouTube: 09/2025 35:13

In Hilbert Space, All Things Are Quantumly Possible

Mike's Notes

This one got me thinking. John von Neumann's 5 laws might be useful inside Pipi for determining any state. I need to do a lot more reading.

The 5 Quantum Commandments of John von Neumann

    1. An arrow in Hilbert space shall represent the quantum state of any object.
    2. Altering the object shall make the arrow rotate smoothly through Hilbert space to represent a new state.
    3. Distinct axes in Hilbert space shall reflect different possible sets of properties of the object.
    4. The shadow the arrow casts onto an axis shall encode the odds of that possibility being realised when a measurement takes place.
    5. Upon measurement, the arrow shall randomly and instantaneously jump to align with the axis representing the observed outcome, and the object shall acquire a fully determined property.
- Quanta Magazine

The original article has some SVG dynamic diagrams which are missing here.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Quanta Magazine
  • Home > Handbook > 

Last Updated

02/09/2026

In Hilbert Space, All Things Are Quantumly Possible

By: Charlie Wood
Quanta Magazine: 26/08/2026

Charlie Wood: Staff Writer, Quanta Magazine.

...

To explore quantum phenomena, we must leave the familiar world and enter the abstract realm of Hilbert space.

...

At the heart of quantum mechanics lie a few sacred rules for how to use the theory. First and foremost is, roughly, that thou shalt not think about ordinary objects presently whizzing through ordinary space. Rather, quantum mechanics predicts — in exquisite detail — all the possible ways that an object might turn out to be in the future. Exploring those possible futures requires tracking an entirely different mathematical object — an arrow known as a vector, one oriented in an expansive, alien domain.

These arrows aren’t pointing at locations. “It’s a much more abstract space than that,” said Lucien Hardy, a physicist at the Perimeter Institute for Theoretical Physics in Waterloo, Canada. They’re “really pointing in a direction in a possibility space.”

This possibility space is called Hilbert space, and it acts as the primary arena for quantum physics.

The early quantum pioneers didn’t realize — at first — that the arcane math that strikingly captured the conduct of atoms had left the real world behind. It took a visionary mathematical physicist, John von Neumann, to recognize and define the quantum world as a Hilbert space. Once he did, exploring the ins and outs of Hilbert space would lead physicists to a deeper, more unified understanding of quantum physics.

Here’s how von Neumann’s first commandment of quantum physics came to be, and how to understand it. 

What Is Hilbert Space?

Von Neumann’s commandments, or axioms, were his way of making sense of the two distinct forms of quantum mechanics developed back-to-back in the 1920s. First came Werner Heisenberg’s “matrix mechanics” in 1925. It used inscrutable tables and, in later formulations, interminable towers of numbers to calculate the odds that an electron circling an atom would jump to a higher or lower orbit. The next year, Erwin Schrödinger introduced his “wave mechanics.” It used waves to track, for instance, the probability of a particle being found at a certain location in space. While the pictures evoked by these two physicists looked completely distinct, they yielded identical predictions. Heisenberg and Schrödinger had come up with two radically different incarnations of one theory. But what was that theory?

The question fascinated David Hilbert, a renowned mathematician who had devoted much of his life to rebuilding physics on a sturdy foundation of crisp axioms. He got von Neumann thinking about the problem in the mid-1920s. In 1927 the 23-year-old prodigy — building on insights from Paul Dirac — solved it in a single-author trilogy of papers.

A bearded man sits in a wicker chair.

The mathematician David Hilbert sought a mathematical structure that would unify the different forms of quantum mechanics.

MacTutor

“The ideas specifically were von Neumann’s, but the inspiration — why do you axiomatize and what for — this is something that he took from Hilbert,” said Leo Corry, a historian of mathematics.

These papers laid out the rules for quantum mechanics, carefully defining the theory’s central objects and how they behaved. Von Neumann showed that Heisenberg’s towers and Schrödinger’s waves were reflections of the same entity, just as 0.5 and ½ indicate the same point on the number line. They both represented the main character in quantum mechanics: the quantum state.

Everything has a state. A coin can read heads or tails. A grandfather clock’s bob can take on any number of positions as it swings. Most of physics amounts to capturing an object’s state and predicting how it will change.

Von Neumann’s quantum rules complicate the notion of a state. Before you observe a quantum object, it does not have a fixed set of properties, such as a specific position. Instead it has a combination of possible properties unique to quantum mechanics — a “quantum superposition.” A superposition combines, for instance, all possible places the particle might end up being. Those possibilities can be precise and informative; perhaps there is a 99% chance you’ll find your particle to your left and a 1% chance you’ll find it to your right. You know how to place your bets, but you can’t know for sure if you’ve won until you check.

Von Neumann rendered the quantum state as a mathematical arrow called a vector. This arrow points in some direction through a space capturing all the possible futures of any quantum object — a Hilbert space.

Imagine a quantum traffic light with three possible states — red, yellow, or green. Its arrow exists in a three-dimensional Hilbert space, where the three axes represent the three possible future colors. Until the moment the light is observed, it doesn’t have a color, but rather a mixture of possible colors. So its arrow points into the space’s central region. The more closely the arrow aligns with, say, the red axis, the more likely the light is to shine red.


Diagram

Mark Belan/Quanta Magazine

The state of any object, from an electron to a galaxy, can be captured by such a vector, pointing in some direction through such a Hilbert space. This is von Neumann’s first rule of quantum mechanics. 

What Happens in Hilbert Space?

An arrow moves through Hilbert space in one of two ways. Von Neumann’s other commandments specify how.

The first possibility corresponds to what happens before an observation. As the world influences the object, changing its state, the arrow turns smoothly through Hilbert space. It might get closer to the green axis, which would make our traffic light more likely to be measured as green, or to red or yellow. The point is that all this happens smoothly and predictably.

Then, if you actually observe the system, the vector will instantly and randomly snap onto either the red, yellow, or green axis. The more aligned it is with one axis, the more likely it is to snap to that axis instead of the others, but its fate is ultimately unpredictable. Let’s say it goes green. You’ll observe a green light, and there is now a 100% chance that it will still be green in subsequent measurements, because the arrow is fully aligned with the green axis. The quantum superposition is no more.

Diagram

What Properties Define Hilbert Space? 

The more possible futures an object has, the bigger its Hilbert space. A coinlike particle with two possible futures is a “qubit,” the computational building block of quantum computers. It has a two-dimensional Hilbert space. Our three-color traffic light has a three-dimensional Hilbert space. But that’s just the beginning. A freely floating particle could be found in any location in the universe, so its Hilbert space must span an infinite number of dimensions.

This size — whether it’s two dimensions or an infinite number — is the only fundamental feature of a Hilbert space, according to von Neumann’s rules. The axes are arbitrary and imagined by us; they aren’t intrinsic to the space.

Consider an electron. It has one state, one arrow, pointing in a vast Hilbert space. Its Hilbert space spans all possible measurements — energy, position, momentum, etc. If you are curious where the electron might be, you can mark the space with the axes that represent possible positions. If you are wondering where the particle might be going, you apply a different set of axes, those representing possible momenta. No matter which measurement you intend to make, the underlying Hilbert space remains the same.

This freedom to carve up Hilbert space as we see fit is what allowed Heisenberg and Schrödinger to come up with two distinct versions of the same theory. Heisenberg’s picture essentially put in axes and let them rotate around the vector, while Schrödinger’s picture did the opposite: It put in a fixed set of axes and let the vector rotate relative to them. They were two completely different mathematical perspectives on the same arrows, in the same Hilbert spaces.

A man sits wearing a suit and tie.

John von Neumann developed an underlying structure for quantum mechanics that involves arrows moving inside an abstract Hilbert space.

US Department of Energy

In the first of his 1927 papers, von Neumann laid out two mathematical criteria that defined such a space. First, it had to be “complete.” It couldn’t be missing any regions or points. And second, you had to be able to calculate the alignment between a state and an axis, which you can visualize by imagining a light shining straight down onto an arrow so it casts a shadow on an axis. (The longer the shadow, the more aligned with that axis the arrow is.) The space had to allow for this operation, known as an inner product. Any space with these two features, no matter its size or origin, was a Hilbert space.

“This was a major step in creating what we call Hilbert space quantum mechanics,” said Miklós Rédei, a philosopher of physics at the London School of Economics. “It’s a beautiful example of how mathematical generalization or abstraction takes place.”

Von Neumann referred to these abstract spaces as Hilbert spaces because his mentor Hilbert had been the first mathematician to explore specific spaces with infinite dimensions in the early 1900s. Hilbert’s work had relied on those spaces being complete and having an inner product, but he didn’t think of them as examples of a more general class of spaces until his protégé grouped them together. The older mathematician may have been surprised to find his name attached to this new mathematical structure. “Dr. von Neumann, I am really curious to know what these Hilbert spaces are, after all,” Hilbert reportedly asked during a 1929 lecture. 

Is Hilbert Space Real or Just an Abstraction?

A century after the birth of quantum mechanics, the theory has left physicists in an awkward position. We live in a world where objects change position as they move through three dimensions of physical space. But our most fundamental theory takes place somewhere else, in von Neumann’s vast realm of possibilities. What does that imply about the reality of our world, or that of Hilbert space?

Mathematically Crucial Fine Print

In quantum physics, Hilbert spaces use complex numbers, which involve the imaginary number i, and negative regions. But von Neumann’s fourth commandment guarantees that the odds of any possibility will always come out as a real, positive number.

To Sean Carroll, a philosopher and physicist at Johns Hopkins University, the message is clear. If quantum mechanics is the fundamental theory of nature, then Hilbert space should be considered the fundamental theater of reality, he argued in a 2022 paper(opens a new tab). One of his lines of research seeks to distill our familiar world from the disorienting Hilbert space that encapsulates all the ways the universe could possibly be.

Other physicists take a more pragmatic stance. Jonathan Sorce, a physicist at Princeton University, says that Hilbert space is a handy mathematical construction that is remarkably useful for describing many quantum systems — but not all of them. He belongs to a community of researchers searching for a mathematical construction that can describe the fabric of space and time as a quantum object. Such a theory is a prerequisite for answering big questions such as what goes on at the heart of a black hole.

Physicists asking these questions have recently focused on an even more abstract space that seems especially well suited for their purposes. This kind of space is made up of the things you could do to a Hilbert space, such as slicing it up in different ways or rotating one slice into another. In this arena, they have found that black holes seem a bit less mysterious.

This sort of über-space is known today as a von Neumann algebra. Von Neumann himself helped develop it as a potential remedy for some logical inconsistencies(opens a new tab) with Hilbert space that troubled him. “I would like to make a confession which may seem immoral: I do not believe in Hilbert space anymore,” he wrote in a 1935 letter while exploring the virtues of algebras.

Sorce, for his part, doesn’t share von Neumann’s desire for one space to rule them all. He’s content to use whichever mathematical construction best suits the quantum object he’s studying. Often it’s a Hilbert space. Sometimes it’s a von Neumann algebra. And occasionally it might even be one of the many other spaces mathematicians have cooked up over the last century.

“There’s a whole zoo of these things,” he said.

The 5 Quantum Commandments of John von Neumann

  1. An arrow in Hilbert space shall represent the quantum state of any object.
  2. Altering the object shall make the arrow rotate smoothly through Hilbert space to represent a new state.
  3. Distinct axes in Hilbert space shall reflect different possible sets of properties of the object.
  4. The shadow the arrow casts onto an axis shall encode the odds of that possibility being realised when a measurement takes place.
  5. Upon measurement, the arrow shall randomly and instantaneously jump to align with the axis representing the observed outcome, and the object shall acquire a fully determined property.

Books Have Always Been Destroyed. But Never Like This

Mike's Notes

I love print books and libraries. Books in print are precious. AI needs to benefit humanity, not be a destructive force.

Trinity College, Ireland

The original posted article had many links.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Card Catalog
  • Home > Handbook > 

Last Updated

01/09/2026

Books Have Always Been Destroyed. But Never Like This

By: Hana Lee Goldin
Card Catalog: 25/08/2026

Your personal librarian for the AI age. Forever in the pursuit of exploring how we find, filter, and feel about information.

We’ve entered the third era of libricide.

...

Quick summary:

An AI company has been buying up used books by the million and destroying them, scanning the pages for training data and pulping what’s left. Court filings unsealed this year describe the program and an internal note asking that the work be kept from becoming known. A court has ruled that buying and scanning the books this way is legal, and once the work is done, nothing survives to show a book was ever there to lose.

Key takeaways:

  • The books are bought through anonymous middlemen, so the sellers filling the orders rarely know where their stock is headed. From every angle the buying looks like ordinary commerce, which is exactly what keeps the destruction from being seen.
  • Book destruction has a long history, and it changes each time the technology of copying changes. It has shifted twice before. This is the third shift, and it looks nothing like the book burnings most of us picture.
  • This shift is set apart by leaving nothing behind. The words are kept, the object is discarded, and no record says which titles were taken, so the loss can be neither proven nor traced to anyone who might answer for the harm.
  • That reaches past books to anyone who wants to know things firsthand. When the only surviving copy is sealed inside a system no outsider can consult, verifying what it says becomes impossible, and we are left trusting whatever summary we are given.

...

“We don’t want it to be known that we are working on this.”

The sentence appears in an internal Anthropic planning document made public through court filings in Bartz v. Anthropic, the copyright class action that three authors filed in 2024. Anthropic, the maker of Claude, called the program Project Panama. Its stated mission fit in one sentence: “Project Panama is our effort to destructively scan all the books in the world.”

Destructive scanning means cutting a book from its binding, feeding the loose pages through a scanner, and discarding the book afterward. According to the court, Anthropic spent millions of dollars buying millions of print books, often used. Its service providers removed the bindings, cut the pages, scanned them into searchable digital files, and discarded the books. Anthropic kept the scans in an internal digital library and used books from that library to train the AI systems behind Claude.

The lawsuit initially concerned another source of Anthropic’s library: more than seven million pirated book files the company had downloaded. The court treated the two acquisition paths differently. It held that Anthropic could lawfully buy print books, convert them into searchable digital files for internal use, and discard the physical copies; because the resulting files remained inside the company rather than being redistributed, that practice was fair use. It reached the opposite conclusion about the books Anthropic had downloaded from pirate sites and retained.

Companies announce the programs they are proud of; Anthropic tried to keep this one invisible. The January unsealing supplied the project’s codename and the instruction to stay silent. The instruction anticipated what the company did not want authors, booksellers, and the reading public to see: books bought by the million, cut apart, scanned, and discarded. Anthropic didn’t publicly announce Project Panama before court records made it public.

The silence has no precedent. Books have been destroyed for as long as they’ve been made: by conquering armies and offended churches, by censors with lists and mobs with torches, by floods and fires, and by budgets that let the roof leak. Some of it was fast and public. More of it was slow and official. All of it, loud or slow, could be recognized for what it was. A person watching knew that books were being lost. History kept what record it could. But what’s happening now carries no such signature. From the outside, nobody could tell that books were being destroyed at all.

Inside Project Panama

Anthropic hired a man named Tom Turvey in February 2024 and gave him a mission the court record repeats in one sweeping phrase: obtaining all the books in the world. Turvey came to the job from Google Books, the project that spent the 2000s digitizing library collections on machines engineered to turn pages gently, so that every book survived its own scanning. Anthropic took the opposite approach. Gentle machinery never entered the plan. Over roughly a year, the company spent tens of millions of dollars buying millions of print books, sheared off their spines, fed the loose pages through high-speed scanners, and pulped what remained. Vendor proposals in the court records described converting up to two million books in six months, some eleven thousand a day.

Destroying the books solved a financial problem first. A bound book must be scanned page by page, slowly and at cost. Once cut apart, the same volume becomes a stack of loose paper that can run through a sheet feeder at speed. Across millions of volumes, the difference in output determined the method.

The legal significance emerged later. In June 2025, Judge William Alsup ruled on the authors’ claims. For the books Anthropic had bought and destroyed, he found the copying to be fair use: the rule in American copyright law that allows limited copying without an author’s permission (the way a critic can quote a novel in a review). His reasoning turned on replacement. Anthropic bought one physical copy, made one digital copy, and destroyed the original—so the number of copies in the world never grew. In the law’s eyes, the scan simply took the book’s place, a change of format. If Anthropic had kept both the book and the scan, the number of copies would have doubled and the fair-use argument would have weakened. Pulping the originals helped make the copying legal.

The pirated downloads fared differently in the same ruling. For those more than seven million files, Alsup rejected Anthropic’s fair-use defense. He emphasized that Anthropic had built a permanent, general-purpose library it expected to keep indefinitely, not a temporary collection for a defined training task. “None is even offered here except for Anthropic’s pocketbook and convenience,” he wrote.

The ruling left the company facing a trial over damages, and Anthropic settled instead: the company agreed to pay $1.5 billion. A judge granted the deal final approval on July 20, the largest copyright class settlement in American history. Under the deal, Anthropic will delete the pirated digital files. Critically, the deal concerns those files, not the millions of physical books the company bought and pulped. Copyright protects the text of a book—the creative expression of an idea—not the paper on which those words were printed. Once Anthropic lawfully owned a physical copy, copyright law generally didn’t prevent it from destroying that object. The books could be destroyed without creating the kind of copyright violation at issue in the case.

But books don’t enter a library by themselves: somebody had to sell the company all those books. The court records describe Anthropic purchasing through vendors. This spring and summer, booksellers across Europe described the other side of such a trade: unusually large, eclectic orders placed through intermediaries, with the ultimate buyer unnamed. Tomás Kenny of Kennys of Galway called one order for books “bananas”—a mix of titles no library would plausibly assemble. Whether any particular order came from Anthropic cannot be established from outside the transaction. Nor is Anthropic the only possible customer: other AI companies have also been reported to be acquiring books at industrial scale.

The reported market is built to keep the buyer at a distance. Brokers can aggregate inventory and manage bulk orders without disclosing who is ultimately acquiring the books. ISBNdb, a book-data company, briefly advertised a prospective book-sourcing service for AI developers that promised confidentiality; its marketing explained the appeal bluntly: “‘AI company destroys two million books’ is not a headline that generates sympathy.” (After reporting drew attention to the page, ISBNdb removed it and said the proposed service had never been launched.) The result was not merely secrecy about the buyer, but uncertainty about the fate of the books.

Annihilation, then spectacle

What Anthropic is doing belongs to a history far older than the company. Rebecca Knuth, a professor of library science, named the practice in 2003: libricide, the systematic destruction of books and libraries, usually carried out or authorized by a government. Her subject was the twentieth century’s state-sponsored campaigns, but the practice runs back as far as writing does. The scenes that come to mind of this are the same few: students feeding bonfires in Berlin in 1933, Sarajevo’s national library burning under siege in 1992. But behind those scenes, the record is wider and stranger than they suggest. Bonfires were rarer than the memory of them. Most destruction arrived slowly and with permission, through purges, censors, wars, and simple neglect.

A strict reading of that definition would leave Anthropic out, reserving libricide for the destruction of entire libraries. But that distinction collapses here. The world’s secondhand book trade functions as one enormous collection, scattered across thousands of shops and sellers with no central address. Buying it up by the pallet and pulping it empties a library all the same, just one whose shelves span continents.

Destroying a book has meant different things in different centuries. The difference has always come down to copying, because how books are copied decides how many of any one book exist. When copies are scarce, destruction can erase a work from existence. Once copies are everywhere, destruction can only send a message about one. To me, that line sorts the history of libricide into eras, and what distinguishes each one is what its destruction leaves behind. The result is my own framework, a chronology by residue that I haven’t found anywhere in the scholarship: two eras completed, and a third that has just begun.

For thousands of years, every copy of every book was made by hand. A single volume could take a scribe months, so most works existed in a few manuscripts, and some in only one. Under those conditions, destroying the object destroyed the work, completely and forever. I call this the first era: the era of destruction as annihilation. The word descends from the Latin ad nihil, meaning to reduce or bring something to nothing. In this era the meaning was literal. When Diego de Landa, a Spanish friar in colonial Yucatán, burned twenty-seven Maya codices in 1562, the texts inside them went to ash. No copies of them existed anywhere on earth, so entire bodies of Maya history and belief ended in one afternoon’s fire. The library of Alexandria met the slower version of the same fate, declining through centuries of purges and neglect until its losses ran past counting. What the first era left behind was dust, and one thing more: knowledge of the loss. Contemporaries recorded what had burned. We can still mourn the codices, because the one thing annihilation couldn’t destroy was the memory that the books had existed.

The printing press ended that era within a century of its invention. Once a title could exist in hundreds or thousands of identical copies spread across cities and countries, fire lost its reach. Burning a book now destroyed only an object, since the work lived on in every other copy, safely out of range. Destruction continued anyway, though, serving a different purpose entirely. I call this the second era, the era of destruction as spectacle (a word descended from the Latin spectare, to watch). By the twentieth century, watching had become the entire point of burning a book. The clearest case is the Nazi bonfires of May 1933, when German students burned tens of thousands of volumes in public squares, in front of rolling newsreel cameras. Almost none of the works truly died in those fires, because the titles on the pyres existed in editions across Europe and America (many of which remain in print today). Erasing the books was never the goal, since erasure had stopped being possible. The fires existed to be seen, a threat performed first for the crowd in the square and then for everyone who watched the footage. What the second era left behind was the opposite of ash: photographs and visuals of fires that consumed real books but reached nothing beyond them. Once a book existed in enough copies, burning one no longer removed it from the world. It announced that the book had no place in the world to come.

Destruction as disappearance

Measured against those two eras, what Anthropic is doing fits neither. In the first era, destroying the object meant losing the work. Anthropic’s scanners preserve every word, so the works survive. In the second era, the objects were beside the point and the burning was public theater. This time the objects are destroyed by the millions, and the destruction says nothing at all; it’s not a message but a method. The company ordered the operation kept out of sight. A destruction that erases no text and performs for no one, run at industrial speed, matches neither pattern. The technology of copying has crossed another threshold, the way it did when the press replaced the scribe. What it means to destroy a book now has changed again to match. We’ve entered the third era.

What exactly went into the scanners is the question nobody outside can answer. The unsealed documents show the program favored what its leader called “less common” books, harder-to-find titles over mass-market ones, without ever defining where less common ends. After the claims went viral this summer, the fact-checking site Snopes investigated whether rare books were being pulped. Anthropic told Snopes that “none of our data acquisition programs buy and destroy ‘rare’ or ‘antiquarian’ books.” The assurance can’t be tested from outside, because no list of what was bought has ever been made public.

Anthropic’s own planners estimated the world has about 130 million distinct books. The program destroyed millions of copies, most of them ordinary used books with plenty of surviving duplicates. Even where duplicates survive, a scan keeps only the words. A physical copy carries evidence too, like a censored paragraph that marks one printing apart from another, or an owner’s name inked inside the cover. But the deeper danger sits in the margin nobody can see. Anthropic aimed for “uncommon” titles while recording nothing public about which copies were destroyed. For a book surviving in only a handful of copies anywhere, one bulk order can potentially take the last one. Whether that has already happened is a question no one on the outside knows for sure. The impossibility of answering what was destroyed is what’s new.

The buying also leans toward older books, for a reason that has nothing to do with rarity. Since around 2022, text written by AI has spread across the internet, mixed in with everything people write and mostly impossible to tell apart. That creates a problem for the companies training new models. Feeding a model text written by other models tends to degrade the results, so the builders want sources guaranteed to be human. A book printed before the technology existed carries that guarantee on its copyright page. Old print has become a raw material, valued for the one quality the internet can no longer promise.

One more feature separates this era from the last one. Spectacle-era destruction wanted an audience; this destruction wants the opposite. The buyer is after the text and has no message to send. In fact, attention to its process can only slow the buying down. Taken together, the features of this era line up: the works survive inside a black box, the objects vanish by the millions, no public record exists, and the operation itself prefers to work in secrecy. I call this the third era, the era of destruction as disappearance. The word rests on the Latin apparere, to come into view, with a prefix that reverses the motion. A disappearance is a departure from visibility. The word fits this era at every layer, from the unseen sales to a program that only appeared when a court forced it into view.

Every one of these books, preserved to the letter, can now be read by no one. The scanned texts sit in Anthropic’s private collection, a library with no reading room and no public catalog. Models trained on that collection are built to avoid quoting it at length, because reproducing long passages for users is the copyright violation no court has excused. So the machines answer questions about books without ever showing the books themselves. When someone asks a model about a title that survives only in that collection, what comes back is a summary, written in the model’s words, with the original nowhere in reach.

That arrangement changes something basic about how we can know things. Checking a claim against its source is the foundation of thinking for ourselves. When we can pull the book, find the page, and read the passage in context, we get to judge whether the summary was faithful and whether the quote meant what someone claims it meant. Remove the book and that judgment has nowhere to stand. We’re left taking the summary on trust, with no way to confirm and no standing to doubt. Whatever the model says the book said becomes, for all practical purposes, what the book said. That’s a transfer of authority from the page to the tool, from a source anyone could check to an answer nobody can. The transfer happens one unreachable book at a time.

Maddeningly, every piece of this design is legal. Each one also removes a question that used to have an answer. The anonymous purchasing means nobody can list which books were destroyed, so nobody can rule out that some were the last copies anywhere. With the collection sealed, nobody can compare a stored text against the printed original it replaced, so even perfect fidelity can never be shown. As for whether the buying ever stopped, nobody outside knows that either, since the only reason anyone knows it started is that a piracy lawsuit dragged the records into the open. None of this took a conspiracy, only ordinary business decisions about what to disclose, all of them legal and every one of them closing a door.

One more thing disappears along with these books: the ability to mourn them. The previous era’s destruction left survivors who could testify to what was lost. Alexandria’s losses were lamented for centuries. Sarajevo’s librarians catalogued what their fire took. The third era leaves no one who can even compile the list. A loss we can name is a wound. One we can't name is just a world grown slightly smaller, with nothing to point to and no way to prove it. A librarian would describe the situation in the profession’s terms: no accession record and no deaccession record, a transaction that leaves no ledger for anyone to audit. Put simply, they’ve created a system in which they can’t be held accountable for the system they’ve created. That understanding defines destruction as disappearance: the loss was built, from the start, to be impossible to establish.

What can still be known

The concealment had one structural weakness: a program that buys millions of books needs sellers, and a company that breaks the law can be sued. Sellers and courts are the two doors into the secrecy — sellers see every order even when they can’t see the buyer, and courts can compel what the company won’t volunteer. Everything now known about the program came through one door or the other. Authors sued and forced the internal records open. Booksellers noticed matching orders across two countries and brought them to reporters; one worked with the journalists at 404 Media to hide a tracking device inside a shipment of books, and the tracker led to an Amazon warehouse outside Las Vegas — evidence that a retail giant appears to be running a scanning program of its own. Within weeks, at least one supplier that had been advertising bulk books for AI training pulled the offer. No regulator opened either door. Every disclosure came from the people the company bought from or the people it answered to in court.

Some sellers went further than noticing. Once Tomás Kenny, whose Galway shop had received one of the strange 5,000-book orders, worked out where books like his might be headed, he said publicly that Kennys wanted no part of scanning aimed at extracting intellectual property. His shop had been the second in the world to put its books online, back in 1994; it now became one of the first to refuse the trade that takes books offline for good. Kenny could refuse because he had worked out the destination, which is exactly the discovery the brokers’ anonymity exists to prevent. A trade that hides its purpose from its own suppliers has already answered the question of whether the suppliers would approve.

The same kind of attention is available to the rest of us, because most of us eventually stand over a box of books deciding where they go, after a move or the clearing of a family house. That box is where all of this arrives at our own doorstep. A seller, or any of us selling to one, can now ask a question that has a good reason to be asked: where do these books go next? The anonymity that keeps this market running survives only as long as nobody asks. For material that might be scarce, like a town history or a box of local records, the open market is no longer the safe default. A library’s special collections desk exists for exactly that kind of donation. And the same habit applies at the other end of the pipeline: when a model summarizes a book for us, we can treat the answer as a starting point and go find the book itself, while findable copies still exist. Each of those is a small act of keeping track.

That kind of record-keeping has been the difference between the eras all along. Each era’s destruction left a residue, a testament of a kind. The first era of annihilation left ashes and knowledge of the devastation. The second era of spectacle left photographs of the fires and the threat those fires were meant to carry. Ours, this third era of disappearance, leaves no ash, no image, and no list. But what’s still open is the record itself: whether one gets kept, and whether anyone outside can access it at all.

...

Thanks for reading

...

The three eras are a framework I built for this piece, and I want to take it further (it’s such fascinating stuff!): a full treatment of how book destruction has changed across five thousand years and what the third era asks of the people living in it. Before I build it though, I’d love to get a temperature read on the format you’re most interested in.

See the poll on the Substack to vote.


Nazi Book Burning

United States Holocaust Memorial Museum

On May 10, 1933, German students under the Nazi regime burned tens of thousands of books nationwide. These book burnings marked the beginning of a period of extensive censorship and control of culture in Adolf Hitler's escalating reign of terror.

In this short film, a Holocaust survivor, an Iranian author, an American literary critic, and two Museum historians discuss the Nazi book burnings and why totalitarian regimes often target culture, particularly literature.

YouTube: Nazi Book Burning

14 May 2013 09:41