Each glowing sphere is one data sample. Its horizontal position is the input (x1, x2), and its height is the true target value z. This is the "ground truth" the model is trying to learn.
The translucent surface shows what the model currently predicts at every (x, y) point. It starts flat (at the average value) and gradually warps to match the data as trees are added.
Vertical lines from the surface up to data points above it. The model is predicting too low here — these are positive residuals. Brighter = bigger error.
Lines from data points up to the surface above them. The model is predicting too high — negative residuals. The next tree will try to push predictions down here.
When a tree is being built, this plane shows where the algorithm is splitting the data. It's partitioning the feature space to group similar errors together, then assigning each group an optimal correction.
The sparkline in the bottom bar tracks Mean Squared Error over rounds. Watch it drop as the ensemble improves. Steep drops = the tree found a useful pattern. Plateaus = diminishing returns.
Click any data point to see the math. The cyan curve is the actual loss function. The dashed orange parabola is the Taylor approximation — XGBoost uses this quadratic to cheaply find the optimal correction (green dot) without evaluating the full loss.
Step = add one tree. Learning Rate = how much each tree contributes (lower = more conservative). Max Depth = tree complexity (deeper = more specific corrections). Speed = animation pace.