Nate Dailey

Projects

Structure-Level Risk Model for Palisades and Eaton Fires

This is an overview of my culminating project for my master's degree in data science and analytics (paper to be submitted in Spring 2026). Figures are draft versions.

Problem statement

This project builds structure-level models for the 2025 Eaton and Palisades fires to better understand the factors that contributed to their destructiveness. Features in the model include structure density, presence of vegetation, topography, structure age, and wind alignment for predicting how a given structure fared in the respective conflagration.

Damage maps for Eaton (left) and Palisades (right) fires

eaton_map palisades_map

Eaton Fire: 14,021 acres and 9,413 structures burned.
Palisades Fire: 23,707 acres and 6,833 structures burned.

Explanatory variables:

Each of the following variables includes a zoomed-in view of a small subset of structures, shown to convey the typical range and spatial variability of each metric.

Structure density

Number of neighboring structures within 250, 500, and 1,000 ft of each structure. Example figure uses 250ft radius.
structures within 250ft

Vegetation Density

Ratio of NDVI in given range within radii of 250, 500, and 1000 ft. Ranges of 0.2-0.8 and 0.3-0.8 used. Example figure demonstrates the ratio of pixels in the 0.2-0.8 range within a 250ft radius.
ndvi 0.2-0.8 within 250ft

Year Built

Year built of each structure.
year_built

Slope

This variable accounts for the tendency of fire to spread uphill. For each structure, a 90° wedge is defined in the upslope direction, extending 100 ft from lower to higher elevation toward the structure and excluding the first 15 ft adjacent to the building. The mean, max, and 90th percentile values of slope within this wedge are used as features. The mean is shown in the figure, which also includes two visual examples of the wedges used for calculations.
upslope_wedge

Structure density in northeast

This variable accounts for ember casting from other structures via Santa Anna winds. It represents the number of structures in the northeast 45° wedge for each structure. There are different features for wedge lengths of 250, 500, and 1000 ft. Figure demonstrates the number of structures in the 250ft wedge.
structures in 250ft NE wedge

Vegetation in northeast

Ratio of NDVI in the range 0.2-0.8 in 45° northeast wedge, which represents ember casting from vegetation. Wedge lengths are 250, 500, and 1000 ft. Figure demonstrates 250ft wedge.
NDVI in 250ft NE wedge

Results

XGBoost was used to predict whether structures burned.

Eaton Fire Results

0 = survived, 1 = burned

eaton_xgboost_results

SHAP Plot:

Note that the SHAP value (x-axis) represents the impact of each feature on the model output (0 or 1, i.e., whether a structure survived or burned). eaton_shap

Palisades Fire Results

0 = survived, 1 = burned

palisades_xgboost_results

SHAP Plot:

palisades_shap

Overall, structure density, structure area, vegetation density, and year built were among the most influential factors. This is consistent with the results of Knapp et al. (2021), who found structure density to be the most important factor in predicting structure loss in the 2018 Camp Fire.

Mappy

During August 2021 - May 2022, I worked at the Formal Analysis of Interactive Media (FAIM) Lab at Pomona College. I assisted in the development of Mappy, a Rust program which interprets pixel data from emulated Nintendo NES games. Mappy's main feature is to produce game maps, linking together different levels and rooms. I specifically worked on Sprite Blobbing and Avatar Detection features, which involve tracking game sprites and grouping them based on their movement and relation to user input. In fall 2021, we submitted a paper on Mappy to a small conference called AIIDE (AI and Interactive Digital Entertainment). Not only was the paper accepted, but it also received an award for best paper at the conference.

Click here to read the paper.

rust_logo.png

Triumvirate Arena

Triumvirate Arena is a battle card game featuring three players: Nate, Chloe, and Grace. Each player type has three signature moves which might increase or decrease your health/mana, and/or do damage to the other player. The goal of this two player game is to reduce the opponent's health to zero. This project was part of the Spring 2022 Game Engine Programming class at Pomona College.

We wrote Triumvirate Arena in Rust, completely from scratch, without a pre-made game engine (using Bitblt and Vulkan shaders). In our team of 3 (myself, Chloe, and Grace), I worked on gameflow mechanics (health/mana interactions, turn taking); player moves; and creating original music, while my partners worked on other mechanics.

gameflow gif

Click here for the Triumvirate Arena repository, in order to see the code and more gameplay examples!


Features:

JumpyBall

JumpyBall is a 3D parkour game. The player navigates through levels by jumping across platforms, avoiding the ground, and working their way to the end gem.

We used the Frender game engine (created by Professor Joseph Osborn), which assisted with the 3D rendering. We created the physics, collision system and assets from scratch.

In JumpyBall, I primarily worked on asset creation and the collision system. I created all of the 3D models in Blender and wrote a Python script to create a set of bounding boxes for objects on the map (used for collision system). This project was also part of the Spring 2022 Game Engine Programming class at Pomona College.


Click here to watch the JumpyBall trailer!

Image Image


Features:

ebay_logo.png

eBay Delivery Prediction Project

During Fall 2021, I worked in a team of 5 to create a neural network that predicts the delivery time of items sold on eBay (based on features such as declared handling days, item category, weight, etc.).

Standalone website
Repository