Self-organization of heterogeneous particle swarms is rich in its dynamics but hard to design in a traditional top-down manner, especially when many types of kinetically distinct particles are involved. In this chapter, we discuss how we have been addressing this problem by (1) utilizing and enhancing interactive evolutionary design methods and (2) realizing spontaneous evolution of self organizing swarms within an artificial ecosystem.