This paper explores the emergence of self-replicating programs in various computational substrates. The study demonstrates that self-replication can arise from random interactions and self-modification in these environments, highlighting the emergence of complex dynamics.