We present QSim, a program for simulation of NMR experiments. Pulse sequences are implemented and analyzed in QSim using a mouse driven interface. QSim can handle almost any modern NMR experiment, using multiple channels, shaped pulses, mixing, decoupling, phase-cycling and pulsed field gradients. Any number of spins with any spin quantum number can, in theory, be used in simulations. Relaxation is accounted for during all steps of pulse sequences and relaxation interference effects are supported. Chemical kinetics between any numbers of states can be simulated. Both classical and quantum mechanical calculations can be performed. The result of a simulation can be presented either as magnetization as a function of time or as a processed spectrum.