Mobile bundlers don't shrink an app by guessing — they run reachability analysis. This simulator builds a real module dependency graph on a 2D canvas, runs a breadth-first search from a chosen entry point over only the edges you say the entry point actually calls, and colors every module by whether the bundler would genuinely keep it. Un-check an export the entry point no longer uses and watch its whole unreachable branch turn red and drop out of the bundle; toggle tree-shaking off to see the unpruned bundle, toggle minification for a further flat cut on the surviving code, and add random dependency edges to see how one new import can drag a whole dead cluster back into the shipped bundle. The kept/pruned size in kilobytes and the overall size-reduction percentage update live from the actual traversal, not a script.