Poderse se puede hacer, ahora la faena para hacerlo es épica
Te voy a explicar como lo enfocaría yo:
1: Crea un mapa de blancos y negros donde esté representada la "rejilla" de trozos de cristal.
2: Crea un proceso que recorra esa rejilla a la vez que recorre el mapa que deseas trocear. Cuando encuentres negro te copias el color, cuando encuentres blanco dibujas el color delimitador que pongas de limite. Esto te ha de dar como resultado la imagen original troceada a negro (o al color delimitador que pongas).
3: Ahora toca hacer una funcion que recorra esa imagen y sea capaz de extraer las areas cerradas (delimitadas con tu color), como un nuevo MAP. Te los guardas todos por ejemplo en una lista enlazada.
4: Creas un proceso por cada MAP generado y los animas. (Esta es la parte sencilla).
Efectos de hielo: En el paso 3 puedes aplicar un proceso que lea los delimitadores y actue en consecuencia, por ejemplo, aclarando las zonas cercanas. Simplemente leyendo el color y sumando (1,1,1) y validando que no superen el 255 en ninguno de los parametros conseguirias aclarar esa zona. Si subes más los valores, más se aclarará. A partir de ahí puedes trabajarlo todo lo que quieras. Lo que no se si hay filtros que lo hagan automáticamente, quizás si, lo desconozco, pero a mano se puede hacer algo interesante.
En definitiva lo que has de lograr es un algoritmo que trocee una imagen de manera iregular y cree con cada objeto un nuevo proceso con ese grafico. Espero haber servido para darte un enfoque en como hacerlo, pero no es fácil y son cientos de lineas hacer eso que buscas.
Un saludo!