Skip to main content
benchmarkedInspired by Hippocampal place cells

Place Field

Counterpart to Static document tree index (PageIndex, ToC)

Key Properties

  • Place field sharpening: frequently queried nodes develop richer summaries
  • Stigmergic edge reinforcement: cross-reference edges strengthen with repeated traversal
  • Selective pruning: unused branches decay, keeping the tree lean and relevant
  • Multi-resolution navigation: coarse-to-fine traversal guided by node importance
  • Landmark formation: heavily accessed nodes become navigation shortcuts
  • Consolidation sweeps: periodic summary quality improvement for active regions

Operation Complexity

Side-by-side comparison with the classical counterpart.

Operation complexity comparison
OperationPlace FieldStatic document tree index (PageIndex, ToC)
navigateO(log N)O(log N) (tree search)
add_nodeO(1)O(1)
record_accessO(1) amortizedN/A
tick (decay + prune)O(N) amortizedN/A
landmark detectionO(1) per accessN/A

Interface Preview

place_field.rs
rust
1pub struct PlaceField { /* ... */ }
2
3impl PlaceField {
4    pub fn new(config: PlaceFieldConfig) -> Self;
5
6    // Structure building
7    pub fn add_node(&mut self, title: String, summary: String, page_range: (usize, usize), parent: Option<u32>) -> Result<u32, PlaceFieldError>;
8    pub fn add_edge(&mut self, source: u32, target: u32, label: String) -> Result<(), PlaceFieldError>;
9
10    // Navigation
11    pub fn navigate(&self, keywords: &[String], max_nodes: usize) -> NavigationResult;
12
13    // Learning
14    pub fn record_access(&mut self, node_id: u32, yield_score: f32) -> Result<(), PlaceFieldError>;
15    pub fn record_edge_traversal(&mut self, source: u32, target: u32, yield_score: f32);
16
17    // Maintenance
18    pub fn tick(&mut self) -> TickReport;
19
20    // Size
21    pub fn node_count(&self) -> usize;
22    pub fn edge_count(&self) -> usize;
23    pub fn root(&self) -> u32;
24    pub fn landmarks(&self) -> Vec<u32>;
25
26    // Introspection
27    pub fn node(&self, id: u32) -> Option<&PlaceNode>;
28    pub fn edges_from(&self, id: u32) -> Vec<&PlaceEdge>;
29}
30
place_field.ts
typescript
1class PlaceField {
2  constructor(options?: PlaceFieldOptions);
3  async init(): Promise<PlaceField>;
4
5  // Structure building
6  addNode(title: string, summary: string, pageStart: number, pageEnd: number, parentId?: number | null): number;
7  addEdge(source: number, target: number, label: string): void;
8
9  // Navigation
10  navigate(query: string, maxNodes: number): NavigationResult;
11
12  // Learning
13  recordAccess(nodeId: number, yieldScore: number): void;
14  recordEdgeTraversal(source: number, target: number, yieldScore: number): void;
15
16  // Maintenance
17  tick(): Record<string, unknown>;
18
19  // Size
20  readonly nodeCount: number;
21  readonly edgeCount: number;
22  readonly root: number;
23  landmarks(): number[];
24
25  // Introspection
26  allNodes(): NodeSnapshot[];
27  allEdges(): EdgeSnapshot[];
28  node(id: number): NodeSnapshot | null;
29}
30

Where This Matters

PDF.js / Document Viewers

Table of Contents / Page Index

Improvement comparison
TodayWith Place FieldHow
Static ToC that never learns from reader behaviorAdaptive topology that sharpens around frequently visited sectionsPlace field reinforcement strengthens accessed nodes and traversed edges
Flat linear structure for cross-referencesWeighted cross-reference graph with decayEdges strengthen with use and decay without; irrelevant links fade naturally
No concept of navigation landmarksAutomatic landmark formation for high-traffic nodesNodes exceeding access threshold become navigation shortcuts

Interactive Simulation

Simulation coming soon

An interactive visualization of Place Field behavior will be available here.

View all simulations

Discussion

Questions, ideas, or experiences with Place Field? Join the discussion.