This is a network simulation that simulates how nodes form and break relationships. Every node has opinions on 10 different topics, some of which are opinions that the node feels strongly about - core opinions - and others that the node doesn't feel strongly about - non-core opinions. Opinions on every topic have a relative weight, symbolizing how important the opinion is to the node. Intuitively, core opinions are always weighted higher than non-core opinions. The sum of the product of each opinion and it's associated score represents a final opinon score.
To simulate interactions between people, two nodes are randomly chosen to interact. Simulataneously, a topic is also chosen. This topic represents the topic of conversation driving the nodes' interaction. If the topic of conversation is one that both nodes have strong opinions on (i.e. core opinions), then the nodes will likely be more resistant to changing their opinions to match each others', and vice versa if the topic of conversation is not one that either of the nodes feel strongly about. The rate at which nodes adjust their opinions, the weights of their relationships, and their stubborness are all parameters associated with and personalized to each of the 10 different opinions a node holds. In other words, every node has a different rate of adjusting it's opinion, relationship strength with the other node, and how stubborn it is about the opinion for every opinion it holds. This helps simulate the realistic scenarios that we all hold on to opinions differently.