Skip to content

vespo92/ChicagoForest.net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

80 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Chicago Forest Network 🌲⚑🌐

GitHub License: MIT

Repository: https://github.com/vespo92/ChicagoForest.net

⚠️ IMPORTANT DISCLAIMER ⚠️

This is an AI-generated theoretical framework for educational and research purposes.

This repository contains:

  1. P2P Wireless Mesh Packages - TypeScript packages for building decentralized wireless networks
  2. Theoretical Energy Framework - Conceptual documentation inspired by Tesla's research

None of this is operational infrastructure. It's a vision of what community-owned networks could look like.


πŸ“¦ Monorepo Structure

This is a Turborepo monorepo containing multiple packages for building the Chicago Forest P2P network.

chicago-forest-network/
β”œβ”€β”€ apps/
β”‚   └── web/                          # Next.js documentation website
β”œβ”€β”€ packages/
β”‚   β”‚
β”‚   β”‚ === MYCELIUM ECOSYSTEM (NEW) ===
β”‚   β”œβ”€β”€ mycelium-core/                # πŸ„ Neural network substrate - hyphal pathways, signal propagation
β”‚   β”œβ”€β”€ spore-propagation/            # 🌱 Network growth - bootstrap, distribution, germination
β”‚   β”œβ”€β”€ nutrient-exchange/            # πŸ”„ Resource sharing - bandwidth, storage, compute credits
β”‚   β”œβ”€β”€ symbiosis/                    # 🀝 Inter-forest federation - gateways, bridges
β”‚   β”œβ”€β”€ hive-mind/                    # 🧠 Collective governance - consensus, proposals, voting
β”‚   β”œβ”€β”€ forest-registry/              # πŸ“– Global discovery - decentralized DNS for forests
β”‚   β”œβ”€β”€ canopy-api/                   # 🌿 Public API - REST, WebSocket, SDK
β”‚   β”‚
β”‚   β”‚ === FOUNDATION LAYER ===
β”‚   β”œβ”€β”€ p2p-core/                     # Core P2P networking primitives
β”‚   β”œβ”€β”€ routing/                      # Unified routing layer
β”‚   β”œβ”€β”€ wireless-mesh/                # WiFi Direct, ad-hoc, mesh routing
β”‚   β”œβ”€β”€ sdwan-bridge/                 # SD-WAN virtual bridge & tunneling
β”‚   β”œβ”€β”€ firewall/                     # Chicago Forest Firewall (CFW)
β”‚   β”œβ”€β”€ node-deploy/                  # Docker/K8s/VM deployment configs
β”‚   β”œβ”€β”€ ipv7-adapter/                 # IPV7 protocol integration
β”‚   β”œβ”€β”€ anon-routing/                 # Anonymous onion routing
β”‚   β”œβ”€β”€ hardware-hal/                 # Hardware abstraction (radios, antennas)
β”‚   β”œβ”€β”€ cli/                          # Command-line interface
β”‚   └── shared-types/                 # Shared TypeScript types
β”œβ”€β”€ turbo.json                        # Turborepo configuration
└── pnpm-workspace.yaml               # Workspace configuration

πŸ„ The Mycelium Ecosystem

The Chicago Forest Network is evolving from a branch architecture to a mycelium network - a self-organizing, resilient global ecosystem like the fungal networks that connect trees underground.

╔═══════════════════════════════════════════════════════════════════════════╗
β•‘                         MYCELIUM ECOSYSTEM                                 β•‘
╠═══════════════════════════════════════════════════════════════════════════╣
β•‘  CANOPY LAYER         @chicago-forest/canopy-api                          β•‘
β•‘  External API, SDKs, Documentation                                         β•‘
║───────────────────────────────────────────────────────────────────────────║
β•‘  GOVERNANCE LAYER                                                          β•‘
β•‘  hive-mind (Consensus) | forest-registry (DNS) | symbiosis (Federation)  β•‘
║───────────────────────────────────────────────────────────────────────────║
β•‘  RESOURCE LAYER                                                            β•‘
β•‘  nutrient-exchange (Credits) | spore-propagation (Growth)                 β•‘
║───────────────────────────────────────────────────────────────────────────║
β•‘  MYCELIUM CORE         @chicago-forest/mycelium-core                       β•‘
β•‘  Hyphal Networks | Signal Propagation | Emergent Topology                  β•‘
║───────────────────────────────────────────────────────────────────────────║
β•‘  FOUNDATION LAYER                                                          β•‘
β•‘  p2p-core | routing | mesh | firewall | sdwan | anon-routing | hardware   β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

See MYCELIUM_ECOSYSTEM.md for the complete vision.


πŸ€– AI Agent Development

This project supports parallel development through 10 specialized AI agents, each with exclusive file ownership to enable conflict-free collaboration.

Agent Codename Domain Focus Area
1 Mycelia Neural Network Core Hyphal pathways, signal propagation
2 Rhizome Network Propagation Bootstrap, growth, self-healing
3 Symbiont Federation Cross-network bridges
4 Sentinel Security Anonymous routing, privacy
5 Archivist Research Historical documentation
6 Beacon Hardware Deployment, infrastructure
7 Nexus API/SDK Developer tools
8 Delegate Governance Voting, proposals
9 Weaver Testing Quality assurance
10 Oracle Documentation UX, web portal

Integration with companion repositories:

See AGENTS_DEPLOYMENT.md for detailed agent specifications and ECOSYSTEM_ANALYSIS.md for integration architecture.


πŸš€ Quick Start

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run development mode
pnpm dev

# Run the CLI
pnpm --filter @chicago-forest/cli build
npx forest --help

πŸ“¦ Package Overview

@chicago-forest/p2p-core

Core P2P networking primitives including:

  • Node Identity: Ed25519 keypairs, peer ID derivation
  • Peer Discovery: Kademlia DHT for decentralized discovery
  • Connection Manager: Peer connection lifecycle and messaging
  • Event System: Type-safe network event handling
import { createNodeIdentity, KademliaDHT, ConnectionManager } from '@chicago-forest/p2p-core';

const identity = await createNodeIdentity();
const dht = new KademliaDHT(identity.nodeId);

@chicago-forest/wireless-mesh

Wireless mesh networking layer:

  • WiFi Direct: P2P connections without infrastructure
  • Ad-hoc Mode: Decentralized wireless networks
  • Mesh Routing: BATMAN-adv, OLSR, Babel protocol support
  • Link Quality: Signal monitoring and neighbor discovery
import { WirelessMeshManager } from '@chicago-forest/wireless-mesh';

const mesh = new WirelessMeshManager({
  protocol: 'batman-adv',
  interface: 'wlan0',
  channel: 6,
});
await mesh.start();

@chicago-forest/sdwan-bridge

SD-WAN virtual bridge for the UNAbridged network:

  • WireGuard Tunnels: Encrypted point-to-point connections
  • VXLAN Overlay: Virtual network segments
  • Traffic Classification: Application-aware routing
  • Path Selection: Latency, bandwidth, cost-based policies
import { SDWANBridge } from '@chicago-forest/sdwan-bridge';

const bridge = new SDWANBridge({
  nodeIdentity: myIdentity,
  forestInterface: 'eth1',
  pathSelection: 'lowest-latency',
});

@chicago-forest/firewall

Chicago Forest Firewall (CFW):

  • Two-Port Configuration: WAN + FOREST interfaces
  • Rule DSL: Fluent API for firewall rules
  • OPNsense Export: Generate OPNsense-compatible configs
  • nftables/iptables: Native Linux firewall support
import { ChicagoForestFirewall, RuleBuilder, generateOPNsenseConfig } from '@chicago-forest/firewall';

const firewall = new ChicagoForestFirewall();
firewall.addRule(
  RuleBuilder.create('allow-forest')
    .name('Allow Forest Traffic')
    .fromZone('forest')
    .allow()
    .build()
);

@chicago-forest/node-deploy

Deployment configurations:

  • Docker: docker-compose for containerized nodes
  • Kubernetes: Deployments with NIC passthrough, SR-IOV
  • VMs: cloud-init for OPNsense/custom VMs
  • Helm Charts: Kubernetes package manager support
import { generateDockerCompose, generateKubernetesManifest } from '@chicago-forest/node-deploy';

const compose = generateDockerCompose({
  nodeName: 'forest-node-1',
  forestInterface: 'eth1',
  enableFirewall: true,
});

@chicago-forest/anon-routing

Anonymous routing layer:

  • Onion Routing: Multi-hop encrypted circuits
  • Hidden Services: Anonymous hosting (like .onion)
  • Traffic Padding: Timing attack resistance
  • Circuit Building: Tor-inspired path selection

@chicago-forest/hardware-hal

Hardware Abstraction Layer:

  • WiFi Adapters: 2.4GHz, 5GHz, 6GHz support
  • LoRa Radios: Long-range mesh (SX1262/SX1276)
  • 60GHz Backhaul: High-speed point-to-point
  • DIY Equipment: Support for custom radios

@chicago-forest/cli

Command-line interface:

forest init               # Initialize a new node
forest start              # Start the node
forest status             # Show node status
forest peers              # List connected peers
forest mesh --neighbors   # Show mesh neighbors
forest tunnel --create    # Create SD-WAN tunnel
forest firewall --rules   # List firewall rules
forest deploy --docker    # Generate Docker config

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    CHICAGO FOREST NETWORK STACK                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  USER DEPLOYMENT (Docker / Kubernetes / VM / Bare Metal)                β”‚
β”‚                                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                       @chicago-forest/cli                        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                                    β”‚                                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚               @chicago-forest/node-deploy                        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  SECURITY LAYER                    β”‚                                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ @chicago-forest/    β”‚    β”‚    @chicago-forest/anon-routing     β”‚   β”‚
β”‚  β”‚     firewall        │◄───│      Onion/Anonymous Routing        β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  NETWORK LAYER                                                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                  @chicago-forest/sdwan-bridge                    β”‚   β”‚
β”‚  β”‚     SD-WAN Overlay | Virtual Tunnels | Traffic Engineering      β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚ @chicago-forest/    β”‚    β”‚    @chicago-forest/p2p-core         β”‚   β”‚
β”‚  β”‚   ipv7-adapter      │◄───│  Node Identity | Peer Discovery     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  TRANSPORT LAYER                                                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                 @chicago-forest/wireless-mesh                    β”‚   β”‚
β”‚  β”‚      WiFi Direct | Ad-hoc | Mesh Routing (BATMAN/OLSR)          β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  PHYSICAL LAYER                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                  @chicago-forest/hardware-hal                    β”‚   β”‚
β”‚  β”‚   Custom Radios | UISP Equipment | LoRa | DIY Antennas          β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”§ Development

Prerequisites

  • Node.js 18+
  • pnpm 9.0+
  • TypeScript 5+

Building

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Build specific package
pnpm --filter @chicago-forest/p2p-core build

# Run tests
pnpm test

# Type checking
pnpm typecheck

Package Development

Each package follows the same structure:

packages/[name]/
β”œβ”€β”€ src/
β”‚   └── index.ts      # Main entry point
β”œβ”€β”€ package.json      # Package configuration
β”œβ”€β”€ tsconfig.json     # TypeScript config
└── tsup.config.ts    # Build configuration (optional)

🐳 Deployment

Docker

# Generate docker-compose
forest deploy --target docker --output docker-compose.yml

# Run
docker-compose up -d

Kubernetes

# Generate K8s manifests
forest deploy --target kubernetes --output forest-node.yaml

# Apply
kubectl apply -f forest-node.yaml

Two-Port Firewall Setup

Users connect with:

  • Port 1 (WAN): Traditional internet (optional)
  • Port 2 (FOREST): Chicago Forest Network

Supports:

  • OPNsense
  • pfSense
  • Custom Chicago Forest Firewall
  • VMs with NIC passthrough
  • Docker with host networking
  • Kubernetes with Multus CNI

πŸ“š Documentation


🌍 Community Mesh Networks (Real-World Inspiration)

This project is inspired by real community mesh networks:

Network Location Nodes Status
NYC Mesh New York 1,000+ Active
Freifunk Germany 40,000+ Active
Guifi.net Spain 37,000+ Active
Toronto Mesh Canada 50+ Active

πŸ“„ License

MIT License - See LICENSE


⚠️ Final Disclaimer

This is a theoretical framework and educational project.

  • No working free energy devices exist in this codebase
  • No operational P2P network is deployed
  • All code is for research and educational purposes
  • Sources are documented in BIBLIOGRAPHY.md

Together, we preserve historical research and envision what could be possible.

Chicago Forest Network - Energy Democracy for All 🌲

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •