← All Projects

ImpactSim

Front End React + TypeScript
Mapping MapLibre GL + PMTiles
Desktop Tauri
Status Completed

Why not build my own?

ImpactSim began while I was experimenting with Alex Wellerstein's NUKEMAP.

I wanted to explore a theoretical nuclear weapon approaching one gigaton, but reached the limit of what I could experiment with there.

My reaction was simple: "Why don't I just make it myself?"

That question became the starting point for ImpactSim.

ImpactSim desktop application overview
ImpactSim desktop application.

Understanding extreme scale

ImpactSim was built mainly out of curiosity.

I wanted a way to compare humanity's most powerful weapons against events produced by nature.

Nuclear detonations were part of the idea from the beginning. Meteor impacts and earthquakes were added later because I wanted natural events powerful enough to provide meaningful comparisons.

The project eventually became less about one giant explosion and more about helping me understand the scale of very different kinds of extreme events.

From a local webpage to a desktop application

ImpactSim started as a locally hosted website.

As I continued working on it, I added new event models, configurable inputs, multiple map systems, geographic placement, effect visualizations, desktop controls, and local map data.

The project eventually became a Tauri desktop application instead of remaining only a browser experiment.

It was also the first project where I found myself managing hundreds and eventually thousands of lines of connected code for one application.

Three kinds of extreme events

01

Nuclear & Extreme Energy

Atomic, thermonuclear, and theoretical antimatter events with configurable yields and different modeled effect regions.

02

Meteor Impacts

Rocky, iron, and icy impactors using configurable diameter, velocity, and impact angle.

03

Earthquakes

Configurable earthquake magnitude and focal depth with geographic shaking-intensity regions.

The system that started the project

The nuclear simulator remains the original foundation of ImpactSim.

Nuclear detonation simulation in ImpactSim
Nuclear-event effect regions displayed geographically.
Atomic / Fission

Supports historical and custom fission-event simulations.

Thermonuclear

Supports much larger yields including historical and theoretical thermonuclear scenarios.

Antimatter

Theoretical antimatter events allow ImpactSim to explore energy levels far beyond existing weapons.

Effect Regions

Different regions visualize the modeled physical effects surrounding an event.

From historical weapons to theoretical extremes

Presets make it possible to quickly compare known historical events with hypothetical ones.

ImpactSim nuclear presets and event controls
Historical, custom, and theoretical event controls.

ImpactSim intentionally allows scenarios that go far beyond existing weapons. The current theoretical antimatter range extends as high as 999.99 gigatons of TNT equivalent.

Comparing weapons against nature

Meteor impacts were added after I began looking for natural events capable of reaching much larger energy scales.

Meteor impact simulation in ImpactSim
Meteor-impact simulation with configurable inputs.
Composition

Rocky asteroid, iron asteroid, and icy comet options use different material densities.

Diameter

Object size changes the calculated mass and total impact energy.

Velocity

Impact speed contributes directly to the calculated kinetic energy.

Impact Angle

The impact angle contributes to the estimated crater and resulting effects.

Combined Effects

The model separates crater size, atmospheric blast, thermal effects, and estimated seismic shaking.

Visualizing shaking instead of blast

Earthquakes provide a different kind of natural event for comparison.

Earthquake simulation in ImpactSim
Earthquake shaking zones visualized through ImpactSim.

Earthquake simulations use magnitude and focal depth to estimate multiple Modified Mercalli Intensity regions, ranging from weak or felt shaking through severe shaking.

The simulator also calculates estimated seismic energy and a TNT-energy equivalent, making the event easier to compare against the other simulation categories.

Three ways to understand scale

01

Infinite City

An effectively unlimited procedural environment for abstract scale comparisons without being restricted by the size of the real Earth.

02

Earth 2D

A real geographic map makes it possible to compare an event against recognizable cities, regions, states, and countries.

03

Earth 3D Globe

A three-dimensional Earth provides another way to understand geographic scale while using the same event-placement system.

Scale without geographic limits

Infinite City remains useful when a theoretical event becomes too large to think about as a normal city-scale scenario.

ImpactSim Infinite City visualization
Infinite City with dynamic scale and zoom information.

Real-world geographic scale

The Earth map lets the same simulation events be placed against real geography instead of an abstract environment.

ImpactSim Earth 2D map
ImpactSim's 2D Earth map using real geographic data.

Turning the map into a globe

One of the largest additions to ImpactSim is a three-dimensional Earth mode.

The same simulation events used by the 2D Earth map can be displayed across the surface of the globe.

Building the globe also led me to add satellite imagery, elevation data, terrain shading, atmospheric effects, and additional geographic detail.

ImpactSim Earth 3D globe
ImpactSim's Earth 3D globe.

Building a more detailed Earth

01

Satellite Imagery

Local raster satellite imagery provides the visual surface used by the 3D Earth.

02

Terrain

Elevation data adds geographic relief to mountains and other changes in elevation.

03

Hillshading

Terrain shading makes differences in elevation easier to distinguish visually.

04

3D Buildings

Building data can be rendered as three-dimensional structures at closer map scales.

05

Atmosphere

Atmospheric and horizon effects help the Earth read visually as a globe instead of a flat map.

Visualizing elevation

Terrain data gives the Earth geographic depth that cannot be communicated by a completely flat map.

Rocky Mountains terrain displayed in ImpactSim
Rocky Mountains terrain in Colorado displayed using ImpactSim's elevation system.

Moving map assets into the application

ImpactSim's desktop mapping system has increasingly moved toward local map assets instead of depending on a normal online map service.

The application uses PMTiles archives for Earth map data, terrain data, and satellite imagery.

This became one of the technically difficult parts of the project because MapLibre had to work correctly with the local files while still supporting simulation overlays, event markers, navigation, and globe rendering.

More than static circles

01

Placement Tools

Bomb, meteor, and earthquake tools allow events to be placed directly on the active map.

02

Navigation Mode

Deselecting a placement tool returns the application to normal map navigation and event inspection.

03

Preview

Events can be previewed before they are permanently placed on the map.

04

Multiple Events

Several simulations can remain on the same map for direct visual comparison.

05

Selectable Pins

Placed events use different marker colors based on event type and can be selected again for inspection.

06

Animated Effects

Effect rings expand outward sequentially from the event center instead of appearing instantly.

Comparing events on one map

Multiple placed events can remain visible together, allowing different scenarios to be compared directly.

Multiple events displayed simultaneously in ImpactSim
Multiple ImpactSim events displayed simultaneously.

Expanding effect regions

When an event is placed, its effect regions expand outward in sequence, making the different distances easier to follow visually.

ImpactSim effect rings expanding from a placed event
Sequential effect-ring animation after an event is placed.

Display and quality controls

As ImpactSim became a desktop application, I began adding settings expected from standalone software.

The application supports windowed mode, borderless windowed fullscreen, and fullscreen.

Windowed mode provides selectable resolutions, while satellite detail can be adjusted between Low, Medium, High, and Ultra.

The selected configuration can also be stored between sessions.

ImpactSim display and satellite quality settings
Display mode, resolution, and satellite-detail settings.

What ImpactSim uses

01

React

Builds the interactive application interface and connects the controls to the simulation systems.

02

TypeScript

Used for simulation logic, event models, map systems, and application behavior.

03

MapLibre GL

Powers the real-world Earth map and 3D globe.

04

PMTiles

Stores local vector, terrain, and satellite mapping data used by the desktop application.

05

Vite

Provides the front-end development and build environment.

06

Tauri

Packages ImpactSim as a desktop application and provides desktop window controls.

The map kept becoming a project of its own

MapLibre has been one of the hardest parts of ImpactSim for me to implement.

What originally sounded like "put the results on a map" eventually involved geographic calculations, geodesic effect circles, local map archives, event markers, interaction, different map projections, terrain, satellite imagery, and globe rendering.

Adding the Earth map was also the point where the project began to feel much larger than the simple idea I originally imagined.

MapLibre development work for ImpactSim
Development work behind ImpactSim's mapping system.

Explore the globe

This lightweight portfolio demo focuses on the interactive Earth visualization while keeping the full desktop application separate.

This version is intentionally lightweight so it can run inside the portfolio. The full ImpactSim desktop application contains the complete event models, local satellite data, terrain, settings, and simulation systems.

A simulator built for curiosity

I do not expect ImpactSim to be something someone needs to use every day.

I see it as something a person opens because a question suddenly occurs to them: "What would this actually look like?"

That is essentially the same reason I built it.

I eventually want the application to be accessible to anyone who wants to experiment with those kinds of questions.

Putting human power into perspective

One of the unexpected things I took away from building ImpactSim was a different sense of scale.

Humanity can create weapons with an almost unimaginable amount of destructive power, but even those weapons suddenly seem small when compared to a natural disaster.

On a personal level, that reinforced my belief in God. Seeing the amount of power that can exist in nature made human strength feel far less absolute than it can sometimes appear.

I found that realization both terrifying and beautiful.

ImpactSim gallery

Interface views, simulation results, map systems, visualization features, and development work from ImpactSim.