Before an IoT packet can hop anywhere, it first has to get onto the radio channel at all — and most low-power devices share one channel with dozens of neighbours. This simulator models that contention directly: every device is an independent transmitter with no routing and no mesh, all fighting for the same shared medium. Under pure ALOHA a device transmits the moment it has data, so any two overlapping frames destroy each other; under CSMA/CA it first senses the channel and backs off if another transmission is already in flight. Three controls — device count, offered load per device and packet airtime — combine into a single dimensionless load G, and live readouts track throughput, collision rate and channel occupancy so you can watch the textbook ALOHA collapse curve appear, then watch listen-before-talk push the same load much further before it happens.