If this particle's life is not 10 and it's not 0 then reduce my life and end loop
Else first make sure all nearby elements of my type are also set to 10, and then continue with the below:
Element is drawn with life=10, temperature=R_TEMP,tmp=0
Element sets its tmp to the amount of particles it's collected. Maximum of MAX_INT.
Element receives heat from nearby elements (touching + diagonal), calculates dheat
Element tries dividing dheat with its tmp, if possible then adds its own temperature to dheat divided by tmp (negative values reduce its temperature)
Element replaces each other element's heat in its group (I think TESC does something similar not sure) with the new temperature from result of last stage
Update ends
The parts in red I consider the hardest steps in creating this 'graphene' of yours.
hmmm... if this gets implemented, you could have PSTN move the graphene to a heat source, then continue to a reciever, which could be an amount of water you want to distill or some extra liquids on a solid surface that aren't required