NetLogo banner

NetLogo Publications
Contact Us

Modeling Commons

Beginners Interactive NetLogo Dictionary (BIND)
NetLogo Dictionary

User Manuals:
Farsi / Persian


NetLogo Models Library:
Curricular Models/Mind the Gap

(back to the library)

MTG 1 Equal Opportunities HubNet

[screen shot]

If you download the NetLogo application, this model is included. You can also Try running it in NetLogo Web


Mind the Gap (MTG) is a curricular unit revolving around a series of three agent-based participatory simulations (ABPSs). The goal of the MTG curricular unit is to help high school students understand important mechanisms of wealth inequality in the U.S., through the lens of complex systems with NetLogo HubNet-based participatory activities.

ABPSs are collaborative learning activities for students to collectively experience and explore the interrelationship between "micromotives" and "macrobehavior" in agent-based models. In a regular ABM, a computer controls the behavior of agents, but in a PartSim, each student takes control of an agent in the model.

The design of the MTG ABPSs was informed by the SugarScape agent-based models (Epstein & Axtell, 1996; Li & Wilensky 2009). Like in the original SugarScape models, the simulation space in the MTG ABPSs consists two major parts: 1) the “land”, where resources (sugar) can be harvested to become people’s wealth; 2) the people, each of which is an avatar controlled directly by a student, who competes with other students to harvest the most sugar and become the wealthiest in the simulation. The students are connected to the teacher's server through the HubNet architecture, like in an online multiplayer game.

This HubNet model is the first of the MTG series, representing a world of equal opportunities and low individual variations. The goal of this model is to let students experience that even with equal opportunities and low individual variations, inequality can still emerge due to personal differences, such as motivation, intelligence, and so forth. While acknowledging differences in personal characteristics, the extent of inequality, as measured by the Lorenz curve and Gini index, is relatively low.


The "land" in this model is represented by a 50 by 50 checkerboard. Each patch on the checkerboard contains the same amount of sugar (2 units of sugar). Each person (or agent) has a few attributes:

  1. Vision: how many patches (steps) away an agent can see.

  2. Endowment: how many units of sugar an agent starts with.

  3. Metabolism: how many units of sugar is needed for moving one step or doing one harvest.

An agent's vision in this model is in 4 directions, in a cross. The length of the cross is equal to the vision slider value.

In this model, every agent has the same attributes, including 2 steps of vision, and endowment of 25 units of sugar, and a metabolism of 1 sugar.

Students can take two kinds of actions:

  1. Move: by clicking the direction buttons or the keyboard shortcuts, students can move around. Each click moves the student by one step and burns METABOLISM amount of sugar.

  2. Harvest: by clicking the harvest button, students harvest all the sugar on the patch that he or she is standing on. One harvest burns METABOLISM amount of sugar.


Before starting the model, the teacher can pose a question such as "Why are rich people rich while poor people poor in this model?". After briefly showing students the interface elements on both the students' and the teacher's interface, the teacher can start the model.

Teacher's interface elements:

SETUP: prepares the model for run. make sure to click it after every student has joined.

GO: start the model, so students can participate in the simulation.

SUGAR-MEAN: the average of all students' current sugar.

SHOW-WORLD: shows the underlying sugar distribution and the locations of each agent. By default, the world is hidden, because students are not supposed to know about the resource distribution. SHOW-WORLD can be used after students played the simulation. During the discussion phase, the teacher can show students what kind of world they were in.

HIDE-WORLD: after showing the world, the teacher can hide the world again from the students, so the whole checkerboard turns grey and students’ avatars invisible.

Wealth distribution plot: a bar chart, in which each bar represents a student's sugar, sorted from the lowest to the highest.

Lorenz curve plot: a chart that shows the cumulative percent of wealth (y axis) owned by the cumulative percentage of the population (x axis). The perfectly equal distribution is the gray diagonal line (e.g., the bottom 30% of the population owns 30% of the total wealth). The farther the red curve deviates from the diagonal line, the more unequal the wealth distribution (e.g., the bottom 30% of the population owns 1% of the total wealth). The Lorenz curve is a cumulative percentage version of the Wealth distribution plot.

Gini index vs. time: The Gini index is a numerical value between 0 and 1 that measures wealth inequality, with 0 being perfectly equal and 1 being extremely unequal. The plot shows the Gini index (y axis) over time (x axis)

The plots automatically update based on the real time aggregation of the amount of sugar that students own.


At the individual level, pay attention to your initial conditions: What is your endowment? (how much sugar do you start with?); What is your vision (how far you can see, as measured in numbers of patches); What is your metabolism? (See THINGS TO TRY for tips on figuring out your metabolism).

Pay attention to the color of the patch that you are harvesting. When you harvest it, it becomes white. But it returns to yellow soon after being harvested, indicating the sugar on that patch grew back.

How does your sugar change? Pay attention to the sugar monitor on your interface.

What happens when you go broke?

At the aggregate level (on the teacher’s interface), pay attention to the three plots, especially the relationship between the Wealth distribution plot and the Lorenz curve.

The Lorenz curve can be derived from the wealth distribution plot by converting the actual amount of sugar that each participant owns (what the height of each bar in the wealth distribution plot represents) into cumulative percentages in the Lorenz curve, which can be interpreted as “the bottom certain percent of the population own certain percent of the world’s wealth”. Therefore, the shape of the area under the red curve in the Lorenz curve plot looks like the shape of the bars in the wealth distribution plot, except that the red curve is stretched unevenly along the y axis.

Pay attention to how one plot’s shape changes in relation to the other and how well the sugar-mean represents everybody’s wealth.


Try taking one step by clicking any of the directional buttons. How much sugar does it take to move one step? That amount is your metabolism. Try clicking the harvest button. Does your total sugar increase, decrease, or stay the same? Do you know why? (Tip: each harvest burns the same amount of sugar as moving one step).

Do you want to move or not? Why? If you do want to move, do you know where to move? (Tip: what is your vision?)

How rich are you in your class? Who is the richest? How did you or they become the richest? Share your experience with the whole class.

Discuss how the simulation compare to the real world. Do you see any analogies? What do vision, endowment, and metabolism mean in the real world? Can you find a real-world story that maps onto your experience in the simulation?


Agents in this model live forever. The model currently does not incorporate aging, death, birth, or generations. Try to extend the model by adding these mechanisms, so participants can explore important ideas such as inheritance and intergenerational mobility.


This model uses hubnet-view-override and hubnet-send-follow to create the view seen on the clients' interface. hubnet-send-override allows the clients to see a view that is different than the host's view. In this model, clients only see a small part of the virtual world. hubnet-send-follow keeps the user at the center of the client's view and puts a halo around it. The user is always centered even when it's moving.

This model also makes use of anonymous procedures, which allow agents to change states (e.g. from "chilling" to "broke"), in which the agents follow different rules at each tick (e.g. when an agent is in the "chilling" state, at each tick, the user's button clicks are executed. However, if the agent is in the "broke" state, the user's button clicks are ignored). Users switch between states in two ways: when in the "chilling" state, if the agent runs out of sugar, it goes into the "broke" state. Meanwhile, a timer starts to count down. When the timer goes down to zero, the agent goes out of the "broke" state and enters the "chilling" state again.


Other models in the Mind the Gap HubNet suite include:

  • Mind the Gap 2 Random Assignment HubNet Model
  • Mind the Gap 3 Feedback Loop HubNet Model

The model is also related to the NetLogo SugarScape suite, including:

  • Sugarscape 1 Immediate Growback
  • Sugarscape 2 Constant Growback
  • Sugarscape 3 Wealth Distribution


Epstein, J. and Axtell, R. (1996). Growing Artificial Societies: Social Science from the Bottom Up. Washington, D.C.: Brookings Institution Press.

Li, J. and Wilensky, U. (2009). NetLogo Sugarscape 1 Immediate Growback model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.


If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.

For the model itself:

Please cite the NetLogo software as:

Please cite the HubNet software as:

To cite the Mind the Gap curriculum as a whole, please use:


Copyright 2018 Uri Wilensky.


This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at

(back to the NetLogo Models Library)