Linked blog posts
Motivation
Retrospective Synthesis
I twisted together the separate threads that have become Energetica in late 2024, taking advantage of a few months of personal time following four years of work in renewables development at Ørsted. Oddly enough, leaving my job led me deeper to the foundations of the industry: from one perspective, Energetica is an exercise in re-discovering the impetus for the energy transition in the first place. Vaclav Smil's Energy and Civilization focused the nebulous thoughts in my mind. His systematic examination of energy's role in human development resonated with questions I'd grappled with throughout my career: Why was I drawn to energy systems? What made the energy transition uniquely important?
Three interwoven technological trends made 2024 an opportune time to explore these questions:
-
The maturation of LLM-based coding assistants like ChatGPT and Claude promised to elevate my software development capabilities beyond scripting and data analysis into full application development.
-
The remarkable advances in GPU computing power, which I witnessed firsthand while working on datacenter infrastructure deals, suggested we were living through a discontinuous moment in human computational capability. Just how much power could I command in a simulation tomorrow? Better find out how much I could command today.
-
The power of browser-based distributed computing meant that complex simulations could now run at scale directly in users' browsers, enabling new forms of interactive education and exploration.
These technological enablers merged with my experience in energy systems --- from power trading and analytics to renewables development and strategy --- into a clear vision: a human-inclusive ecological model emphasizing the foundational role of energy flows in constraining and enabling societal development.
Some Specific Inspirations
- Meandering rivers in particle-based hydraulic erosion simulations
- Energy and Civilization, by Vaclav Smil
- David Reich interview with Dwarkesh Patel on the Dwarkesh Podcast
- Procedural Generation Subreddit
Modeling
The physical world in Energetica is represented through four interacting systems: solar radiation, terrain and water dynamics, vegetation growth, and human activity. Each system is modeled at a level of abstraction appropriate for exploring energetic constraints on society while maintaining computational feasibility.
Solar Energy System
The solar model primarily tracks the flow of energy from incident solar radiation through various transformation and capture processes. The system:
- Models daily and seasonal variations in solar intensity using astronomical geometry (axial tilt, latitude)
- Calculates Global Tilted Irradiance (GTI) accounting for:
- Direct beam radiation
- Atmospheric scattering and absorption
- Terrain self-shadowing effects
- Simplifies cloud cover and weather patterns into a base atmospheric transmission factor
Key tradeoffs made include ignoring sub-day temporal dynamics and using a simplified atmospheric model rather than a full radiative transfer approach. These choices prioritize performance while maintaining sufficient accuracy for modeling vegetation growth and energy resource availability.
Terrain and Water Dynamics
The terrain system models landform evolution and water flows through a cell-based height field representation. Key components include:
- Single-valued height field terrain (no overhangs or caves)
- D8 flow routing for water movement
- Erosion and deposition based on flow accumulation
- Sea level dynamics for coastline formation
Water is modeled through:
- Surface flow based on height differentials
- Basic groundwater seepage
- Simplified evaporation/precipitation cycle
The main simplification is the use of a height field rather than a full 3D terrain representation, which prevents modeling of geological structures like caves or overhangs. The D8 flow model, while computationally efficient, can produce somewhat unrealistic angular flow patterns compared to more sophisticated methods.
Vegetation System
Plant life is modeled through a simplified Net Primary Productivity (NPP) approach that tracks biomass accumulation. The system models:
- Photosynthetic energy capture from solar radiation
- Conversion efficiency to glucose and biomass
- Resource constraints from water availability
- Basic competition between plants for light and resources
Major simplifications include:
- No explicit species differentiation
- Simplified root systems
- Basic competition model
- Aggregated rather than individual plant modeling
This abstraction level captures the essential energy flows while avoiding the complexity of detailed ecological modeling.
Human Agent System
Human agents are modeled as autonomous entities that interact with and extract value from the environment. The system includes:
- Basic needs driven behavior (food, water)
- Simple pathfinding and resource gathering
- Cultural parameter evolution
- Rudimentary social interactions
Notable simplifications:
- Limited agent intelligence and planning
- Basic social structures only
- No complex economic modeling
- Simplified technology progression
The focus is on representing how human activities are constrained by and interact with environmental energy flows, rather than modeling complex social or economic behaviors.
These four systems interact through shared resources and energy flows, with each system's outputs becoming inputs for others. The overall model emphasizes energy transfer and transformation while maintaining computational tractability through careful abstraction choices.
Implementation
Energetica is implemented as a browser-based application that leverages modern web technologies to achieve desktop-level computational performance. The architecture balances simulation fidelity with the constraints of browser-based computing through several key design choices.
Implementation Philosophy
The technical implementation of Energetica reflects key principles about modeling complex environmental systems:
-
Computational Accessibility
By running entirely client-side, the simulation democratizes access to complex environmental modeling. This aligns with the project's goal of making energy system dynamics more broadly understandable. -
System Parallelism
The separation into parallel systems (terrain, solar, water, vegetation, human) mirrors the distinct but interacting processes in natural systems. This architectural choice reflects both computational necessity and theoretical understanding of environmental processes. -
Scale-Appropriate Processing
The multi-scale computation approach, with varying time steps and resolutions, reflects the reality of environmental processes operating at different temporal and spatial scales. This mirrors how real ecological and societal systems exhibit different characteristic frequencies of change. -
Technology Choices
The selection of modern web standards and GPU acceleration capabilities represents a balance between accessibility and computational power - a key consideration in environmental modeling where fidelity must be traded against usability.
These implementation decisions emerge from both practical necessity and theoretical understanding of environmental systems modeling. The architecture aims to maintain sufficient fidelity for meaningful insights while remaining computationally tractable.
Learnings and Next Steps
Key Insights
Developing Energetica has reinforced several insights about the intersection of technology, energy systems, and human development:
-
Browser Compute Platform Viability
The maturation of browser APIs and client hardware has created a compelling platform for distributed scientific computing. WebGL, Web Workers, and modern JavaScript provide desktop-level performance without infrastructure overhead. This suggests exciting possibilities for democratizing complex systems modeling. -
AI-Assisted Development
The emergence of capable LLM coding assistants has dramatically accelerated solo development of complex applications. However, the experience highlighted current limitations around architecture planning and performance optimization, where human expertise remains critical. -
Environmental Model Complexity
Even simplified models of environmental systems reveal intricate feedback loops and emergent behaviors. The challenge of balancing fidelity with performance mirrors real-world energy transition planning challenges, where system complexity often confounds straightforward solutions.
Areas for Expansion
Several promising directions for future development align with both technological trends and energy transition needs:
-
Enhanced Modeling
- Integration of economic feedback mechanisms
- More sophisticated climate system modeling
- Improved agent-based societal evolution
- Machine learning for behavior optimization
-
Technical Capabilities
- WebGPU implementation for increased performance
- Collaborative multi-user simulations
- Expanded data visualization capabilities
- Scenario comparison and analysis tools
-
Educational Applications
- Curriculum development around energy systems
- Interactive case studies of historical transitions
- Tools for exploring policy interventions
- Visual explanations of complex feedbacks
Professional Context
This project synthesizes a decade of experience across energy markets, renewables development, and systems modeling into a unique exploration platform. It demonstrates how modern web technologies can help bridge the gap between technical energy system models and broader stakeholder understanding.
The insights gained are directly applicable to several contemporary challenges:
- Making complex energy transition tradeoffs more intuitive
- Improving stakeholder engagement in development processes
- Building better tools for system-level planning and analysis
- Creating more effective educational resources
As computational capabilities continue advancing and energy transition urgency increases, tools that enhance understanding of these complex systems become increasingly valuable. Future development will focus on making Energetica more robust and accessible while preserving its core emphasis on energy as a fundamental driver of human development.
Bibliography
Better Understanding Vaclav Smil
- Energy and Civilization (PDF)
- “Growth and the Energy Transition with Vaclav Smil” on the Azeem Azhar Exponential View podcast
Classification of Cells for Rendering
- Wikipedia, Biome
- Wikipedia, Holdridge life zones
- Wikipedia, Köppen climate classification
- Wikipedia, Ecosystem classifications
Solar Modeling
Water Modeling
Plant Modeling
- Wikipedia, Theoretical Production Ecology
- Wikipedia, Leaf Area Index
- Nature, Terrestrial Primary Production
- Wikipedia, Primary Production
- ODU SEES, Vegetation Class
- Wikipedia, Photosynthetically Active Radiation
- Wikipedia, Photosynthetic efficiency
People Modeling
Technologies: JS, Node, Rollup, Canvas, WebGL/WebGPU, etc.
- Claude
- ChatGPT
- WebGL Fundamentals
World Generation
- Minecraft Wiki, World Generation
- Fastlem Documentation, Fast Lightweight Erosion Model
- CMU Course, Terrain Gen PDF
- World Machine Site, Features List
- MapEditor Discourse, WorldEngine - Tiled Export
- World Creator, Features List
- Red Blob Games, Terrain from Noise
- Stanford, Polygon Map Generation