def netherlands_mode(): """Netherland mode.""" seed = random.randrange(sys.maxsize) provinces = [ "Groningen", "Friesland", "Drenthe", "Overijssel", "Flevoland", "Gelderland", "Utrecht", "Noord-Holland", "Zuid-Holland", "Zeeland", "Noord-Brabant", "Limburg", "---" ] grid_height = 200 grid_width = 200 map_id = 0 canvas_height = 800 canvas_width = canvas_height patient_zero = False model_params = { "height": grid_height, "width": grid_width, "seed": UserSettableParameter("number", "seed", value=str(seed)), "density": UserSettableParameter("slider", "Agent density", value=0.2, min_value=0.01, max_value=1.0, step=0.01), "infected_chance": UserSettableParameter("slider", "Change getting infected", value=0.1, min_value=0.01, max_value=1.0, step=0.01), "human_kill_agent_chance": UserSettableParameter("slider", "Human survive chance", value=0.35, min_value=0, max_value=1, step=0.01), "map_id": map_id, "province": UserSettableParameter("choice", "Province outbreak", "Noord-Holland", choices=provinces), "patient_zero": UserSettableParameter("checkbox", "Patient zero", value=patient_zero), } return model_params, canvas_height, canvas_width, grid_height, grid_width
def setUp(self): self.user_params = { "width": 1, "height": 1, "key1": UserSettableParameter("number", "Test Parameter", 101), "key2": UserSettableParameter("slider", "Test Parameter", 200, 0, 300, 10), } self.viz_elements = [ CanvasGrid(self.portrayal, 10, 10, 20, 20), TextElement(), # ChartModule([{"Label": "Wolves", "Color": "#AA0000"}, # Todo - test chart module # {"Label": "Sheep", "Color": "#666666"}]) ] self.server = ModularServer(MockModel, self.viz_elements, "Test Model", model_params=self.user_params)
"w": 1.00 } return portrayal #DefiniciĂłn de lo elementos del server grid = CanvasGrid(portrayal, 7, 7, 500, 500) chart = ChartModule([{ "Label": "Empleo calificado", "Color": "green" }, { "Label": "Educados sin empleo calificado", "Color": "red" }, { "Label": "No educados", "Color": "yellow" }], data_collector_name="datacollector") #DefiniciĂłn del server server = ModularServer( HumanCapital, [grid, chart], "Modelo de Capital Humano", { "N_educados": UserSettableParameter('slider', "Numero de personas educadas", 20, 1, 50, 1), "N_buenos_empleo": UserSettableParameter('slider', "Numero de buenos empleos", 10, 1, 50, 1), "colegiatura": UserSettableParameter('slider', "Colegiatura", 10, 0, 25, 1) })
} for (node_id, agents) in G.nodes.data('agent')] portrayal['edges'] = [{'id': edge_id, 'source': source, 'target': target, 'color': '#000000', } for edge_id, (source, target) in enumerate(G.edges)] return portrayal grid = NetworkModule(network_portrayal, 500, 500, library='sigma') chart = ChartModule([ {"Label": "Average Delta Trolling", "Color": "Black"}], data_collector_name='datacollector' ) model_params = { "num_agents": UserSettableParameter('slider', "Number of agents", 50, 0, 100, 10, description="Choose how many total agents to include in the model"), "percent_trolls": UserSettableParameter('slider', "Percent trolls", .1, 0, 1.0, 0.05, description="Choose what percent trolls to include in the model"), "percent_mods": UserSettableParameter('slider', "Percent mods", .2, 0, 1.0, 0.05, description="Choose what percent mods to include in the model") } server = ModularServer(TrollModNetwork, [grid, chart], "Troll Mod Model", model_params) server.port = 8521
"Color": 'Red' }, { "Label": "Removed", "Color": 'Blue' }], canvas_height=500, canvas_width=1000) model_params = { "height": 100, "width": 100, "dummy": UserSettableParameter( "static_text", value="NB. Use 'Reset'-button to activate new model settings"), "schedule_type": UserSettableParameter("choice", "Scheduler type", value="Simultaneous", choices=list(EpiDyn.schedule_types.keys())), "startblock": UserSettableParameter("checkbox", "2x2 block start (or random)", value=True), "density": UserSettableParameter("slider", "Initial random density", 0.5, 0., 1.0, 0.001), "groupsize": UserSettableParameter("slider", "Groupsize", 3, 0, 25, 1),
else: portrayal["Color"] = "grey" portrayal["Layer"] = 1 portrayal["r"] = 0.2 return portrayal # canvas grid with dimensions 10 x 10, drawn in 500 x 500 pixels grid = CanvasGrid(agent_portrayal, 10, 10, 500, 500) # plot gini chart = ChartModule([{ "Label": "Gini", "Color": "black" }], data_collector_name="datacollector") # user-definable number of agents # parameter changes don't take place until the model is reset n_slider = UserSettableParameter("slider", "Number of Agents", 100, 2, 200, 1) # create server server = ModularServer(MoneyModel, [grid, chart], "Money Model", { "N": n_slider, "width": 10, "height": 10 }) server.port = 8521 # default server.launch()
from mesa.visualization.modules import CanvasGrid, ChartModule from mesa.visualization.ModularVisualization import ModularServer from mesa.visualization.UserParam import UserSettableParameter from code.model import RatingModel #set up model paramters model_params = { 'N': UserSettableParameter("slider", 'Viewers', 25, 1, 500, description="Number of Viewers"), 'M': UserSettableParameter("slider", 'Movies', 25, 1, 500, description="Number of Movies"), 'K': UserSettableParameter("slider", 'Categories', 1, 1, 10, description="Number of Movie Categories"), }
if CALIB: chart = ChartModule([{"Label": "NumberOfneighbors", "Color": "#666666"}]) else: chart = ChartModule([{ "Label": 'NumberOfInfected', "Color": "#AA0000" }, { "Label": 'NumberOfSusceptible', "Color": " #AA5500" }, { "Label": 'NumberOfRecovered', "Color": "#00AA00" }, { "Label": 'NumberOfExposed', "Color": "#0000AA" }]) model_params = { "turtles": UserSettableParameter('slider', 'turtles', 1000, 100, 20000, 100), "i0": UserSettableParameter('slider', 'i0', 10, 1, 100, 5), "r0": UserSettableParameter('slider', 'r0', 3.5, 0.5, 10.5, 0.5), "ti_shape": UserSettableParameter('slider', 'ti', 5.8, 1, 20, 1), "tr": UserSettableParameter('slider', 'tr', 5, 1, 20, 1) } server = ModularServer(BarrioTortugaSEIR, [canvas_element, chart], "Barrio Tortuga SEIR", model_params) server.port = 8521 server.launch()
else: portrayal["Color"] = ["#2ee0ff", "#2ee0ff"] return portrayal # 20x20 grid of 400x400 pixels, with agents rendered # using the above function canvas_element = CanvasGrid(schelling_draw, 20, 20, 400, 400) # a simple timeseries visualization move_chart = ChartModule([{"Label": "num_moved", "Color": "Black"}]) # parameters passed to the model # passing parameter "values" equal to UserSettableParameters creates # pleasant sliders model_params = { "height": 20, "width": 20, "density": UserSettableParameter("slider", "Agent density", 0.8, 0.1, 1.0, 0.1), "homophily": UserSettableParameter("slider", "homophily", 0.5, 0.0, 1.0, .02), } # serve the different model elements server = ModularServer( SchellingModel, # model used [move_element, canvas_element, move_chart], # elements rendered "Schelling Model Visualization", # name model_params # parameters of model )
n['agent'][0].wealth), } for n_id, n in G.nodes(data=True)] portrayal['edges'] = [{'id': i, 'source': source, 'target': target, 'color': '#000000', } for i, (source, target, _) in enumerate(G.edges(data=True))] return portrayal grid = NetworkModule(network_portrayal, 500, 500, library='sigma') chart = ChartModule([ {"Label": "Gini", "Color": "Black"}], data_collector_name='datacollector' ) model_params = { "num_agents": UserSettableParameter('slider', "Number of agents", 7, 2, 10, 1, description="Choose how many agents to include in the model"), "num_nodes": UserSettableParameter('slider', "Number of nodes", 10, 3, 12, 1, description="Choose how many nodes to include in the model, with at " "least the same number of agents") } server = ModularServer(MoneyModel, [grid, chart], "Money Model", model_params) server.port = 8521
else: portrayal["Color"] = "brown" portrayal["Shape"] = "rect" portrayal["Filled"] = "true" portrayal["Layer"] = 0 portrayal["w"] = 1 portrayal["h"] = 1 return portrayal canvas_element = CanvasGrid(wolf_sheep_portrayal, 20, 20, 500, 500) chart_element = ChartModule([{"Label": "Wolves", "Color": "#AA0000"}, {"Label": "Sheeps", "Color": "#666666"}, {"Label": "Wolves average age", "Color": "#AAAA00"}, {"Label": "Sheeps average age", "Color": "#00AAAA"}]) model_params = {"grass": UserSettableParameter('checkbox', 'Grass Enabled', True), "grass_regrowth_time": UserSettableParameter('slider', 'Grass Regrowth Time', 20, 1, 50), "initial_sheep": UserSettableParameter('slider', 'Initial Sheep Population', 100, 10, 300), "sheep_reproduce": UserSettableParameter('slider', 'Sheep Reproduction Rate', 0.04, 0.01, 1.0, 0.01), "initial_wolves": UserSettableParameter('slider', 'Initial Wolf Population', 50, 10, 300), "wolf_reproduce": UserSettableParameter('slider', 'Wolf Reproduction Rate', 0.05, 0.01, 1.0, 0.01, description="The rate at which wolf agents reproduce."), "wolf_gain_from_food": UserSettableParameter('slider', 'Wolf Gain From Food Rate', 20, 1, 50), "sheep_gain_from_food": UserSettableParameter('slider', 'Sheep Gain From Food', 4, 1, 10)} server = ModularServer(WolfSheepPredation, [canvas_element, chart_element], "Wolf Sheep Predation", model_params) server.port = 8521
'target': target, 'color': '#000000', } for edge_id, (source, target) in enumerate(G.edges)] return portrayal canvas_network = NetworkModule(mesa_abba_network_portrayal, 500, 600, library='sigma') chart_element = ChartModule([{"Label": "BankAsset", "Color": "#AA0000"}]) model_params = { "write_db": UserSettableParameter("checkbox", 'Write DB', value=True), "max_steps": UserSettableParameter("slider", "Max steps", 20, 10, 200, 1), "initial_saver": UserSettableParameter("slider", "# of Saver", 10000, 10000, 20000, 100), "initial_bank": UserSettableParameter("slider", "# of Bank", 10, 10, 20, 1), "initial_loan": UserSettableParameter("slider", "# of Loan", 20000, 10000, 30000, 100), "initial_equity": UserSettableParameter("slider", "Initial Equity of Bank", 100, 100, 200, 1), "car": UserSettableParameter("number", "Minimum capital adequacy ratio", value=0.08),
class InfectedText(TextElement): """ Display a text count of how many steps have been taken """ def __init__(self): pass def render(self, model): return "Days: " + str(model.steps) model_params = { "show_schools": UserSettableParameter('checkbox', 'Show schools', value=True), "show_restaurants": UserSettableParameter('checkbox', 'Show restaurants', value=True), "monitored_statistic": UserSettableParameter('choice', 'Monitored statistic', value='infected', choices=['infected']), } def infected_draw(agent): """ Portrayal Method for canvas """ portrayal = dict()
from mesa_geo.visualization.MapModule import MapModule class HappyElement(TextElement): ''' Display a text count of how many happy agents there are. ''' def __init__(self): pass def render(self, model): return "Happy agents: " + str(model.happy) model_params = { "density": UserSettableParameter("slider", "Agent density", 0.6, 0.1, 1.0, 0.1), "minority_pc": UserSettableParameter("slider", "Fraction minority", 0.2, 0.00, 1.0, 0.05) } def schelling_draw(agent): ''' Portrayal Method for canvas ''' portrayal = dict() if agent.atype is None: portrayal["color"] = "Grey" elif agent.atype == 0: portrayal["color"] = "Red" else:
return portrayal canvas_element = CanvasGrid(covid19_portrayal, 8, 8, 500, 500) chart_element = ChartModule( [{"Label": "PersonaSaludable", "Color": "#00FF0D"}, {"Label": "PersonaInfectada", "Color": "#FF8700"}, {"Label": "PersonaMalalta", "Color": "#AB1103"}, {"Label": "PersonaMortaPelVirus", "Color": "#333333"}, {"Label": "PersonaImmunitzada", "Color": "#08F0EE"},{"Label": "Virus", "Color": "#EA08F0"}] ) model_params = { "inicial_persones": UserSettableParameter( "slider", "Inici persones", 5, 0, 10 ), "inicial_virus": UserSettableParameter( "slider", "Inici virus", 3, 0, 10 ), "reproduccio_persones": UserSettableParameter( "slider", "ReproducciĂł persones", 2, 0, 10 ), "infeccio_virus": UserSettableParameter( "slider", "InfecciĂł virus", 6, 0, 10 ), "reproduccio_virus": UserSettableParameter( "slider", "ReproducciĂł virus", 3, 0, 10 ), "temps_deteccio": UserSettableParameter( "slider", "Temps detecciĂł", 6, 0, 10
portrayal["Layer"] = 1 portrayal["r"] = 0.2 return portrayal grid = CanvasGrid(agent_portrayal, 10, 10, 500, 500) chart = ChartModule([{ "Label": "Gini", "Color": "Black" }], data_collector_name='datacollector') model_params = { "N": UserSettableParameter( 'slider', "Number of agents", 100, 2, 200, 1, description="Choose how many agents to include in the model"), "width": 10, "height": 10 } server = ModularServer(MoneyModel, [grid, chart], "Money Model", model_params) server.port = 8521
tag: indicator that these are "obstruction" agents. """ super().__init__(unique_id, model) self.pos = np.array(pos) self.tag = tag def step(self): """Make obstruction agents do nothing.""" pass # Interactive sliders for model arguments. # Todo: Change "value" argument for initial or testing conditions n_slider = UserSettableParameter(param_type='slider', name='Number of Agents', value=100, min_value=10, max_value=200, step=1) speed_slider = UserSettableParameter(param_type='slider', name='Speed', value=2, min_value=0, max_value=10, step=1) vision_slider = UserSettableParameter(param_type='slider', name='Vision Radius', value=10, min_value=0, max_value=20, step=1) sep_slider = UserSettableParameter(param_type='slider',
"Color": "#F6412D" }, ], data_collector_name='datacollector2') histogram = HistogramModule([ "Attraction1", "Attraction2", "Attraction3", "Attraction4", "Attraction5" ], 20, 50) model_params = { "height": height, "width": width, "N_attr": UserSettableParameter("slider", "Number of attractions", num_agents, 1, num_agents, 1), "N_cust": UserSettableParameter("slider", "Number of customers", int(N_cust / 1.5), 1, N_cust * 2, 1), "strategy": UserSettableParameter('choice', 'Strategy choice', value='Closest_by', choices=['Random', 'Closest_by']), "theme": UserSettableParameter('choice', 'Theme park lay-out', value='circle', choices=['random', 'circle', 'cluster']), "max_time": max_time,
"heading_y": agent.heading[1] } return portrayal grid = CanvasGrid(agent_portrayal, 5, 5, 500, 500) chart = ChartModule([{ "Label": "Average Success (of the last window of dialogs)", "Color": "Black" }], data_collector_name='datacollector') # Number of Agents in the simulation n = UserSettableParameter('slider', 'Total Number of agents', value=5, min_value=0, max_value=10, step=1) l = UserSettableParameter('slider', 'Number of initial literate agents', value=0, min_value=0, max_value=10, step=1) # Word-meaning coupling change rate r = UserSettableParameter('slider', 'Vocabulary change rate', value=5, min_value=1, max_value=10,
return portrayal grid = CanvasGrid(agent_portrayal, 50, 50, 800, 800) chart1 = ChartModule( [{"Label": "Average Perception of Safety", "Color": "#0000FF"}], data_collector_name="datacollector" ) chart2 = ChartModule( [{"Label": "Crime-rate", "Color": "black"}], data_collector_name="datacollector" ) model_params = { "n_victims": UserSettableParameter('slider', 'Number of Possible Victims', value=50, min_value=0, max_value=100, step=1), "n_offenders": UserSettableParameter('slider', 'Number of Possible Offernders', value=15, min_value=0, max_value=30, step=1), "n_criminal_generators": UserSettableParameter('slider', 'Number of Criminal Generators', value=3, min_value=0, max_value=6, step=1), "r_criminal_generators": UserSettableParameter('slider', 'Radius of the Criminal Generator Area', value=4, min_value=0, max_value=8, step=1), "max_cp": UserSettableParameter('slider', 'Upper Bound on Criminal Preference of Offenders', value=0.5, min_value=0, max_value=1, step=0.01), "pop_count": 0, "height": 50, "width": 50 } server = ModularServer(Model, [grid, chart1, chart2], "Violent Crime when Walking Home Alone at Night",
return portrayal canvas_element = CanvasGrid(citizen_cop_portrayal, 40, 40, 500, 500) active_chart = ChartModule([{ "Label": "Active", "Color": "Red" }, { "Label": "Jailed", "Color": "Black" }, { "Label": "Quiescent", "Color": "Orange" }], data_collector_name="dc") leg_slider = UserSettableParameter('slider', "legitimacy", 0.8, 0., 1., 0.001) cit_vis_slider = UserSettableParameter('slider', "Citizen vision", 3, 1, 10, 1) cop_vis_slider = UserSettableParameter('slider', "Cop vision", 2, 1, 10, 1) act_slider = UserSettableParameter('slider', "Active treshold", 0.1, 0., .5, 0.001) #hom_slider = UserSettableParameter('slider', "Schelling homophily", 3, 1, 9, 1) nb_choice = UserSettableParameter('choice', 'Neighbourhood vision setup', value='Neumann', choices=['Neumann', 'Moore']) jail_slider = UserSettableParameter('slider', "Max jail time", 30, 0., 150, 1) server = ModularServer( CivilViolenceModel, [canvas_element, active_chart], "Epstein Civil Violence", {
ratio = model.resistant_susceptible_ratio() ratio_text = "∞" if ratio is math.inf else "{0:.2f}".format( ratio) infected_text = str(number_infected(model)) return "Resistant/Susceptible Ratio: {}<br>Infected Remaining: {}".format( ratio_text, infected_text) model_params = { "num_nodes": UserSettableParameter( "slider", "Number of agents", 10, 10, 100, 1, description="Choose how many agents to include in the model", ), "avg_node_degree": UserSettableParameter("slider", "Avg Node Degree", 3, 3, 8, 1, description="Avg Node Degree"), "initial_outbreak_size": UserSettableParameter( "slider",
ratio_text = "∞" if ratio is math.inf else "{0:.2f}".format( ratio) positive_text = str(m.num_positive(model)) negative_text = str(m.num_negative(model)) return "Positive/Negative Ratio: {}<br>Positive Opinion: {}<br>Negative Opinion: {}".format( ratio_text, positive_text, negative_text) # model parameters settable from interface model_parameters = { "num_nodes": UserSettableParameter( "slider", "Number of nodes", 100, 10, 1000, 10, description="Number of nodes to include in the model"), "avg_node_degree": UserSettableParameter( "slider", "Average node degree", 2, 1, 5, 0.1, description="Average number of links from each node"), "initial_opinion": UserSettableParameter( "slider",
from mesa.visualization.UserParam import UserSettableParameter health_workers_option = UserSettableParameter('checkbox', 'Health Workers', value=True) public_admin_option = UserSettableParameter( 'checkbox', 'Public Administration and Defense', value=True) gainful_workers_option = UserSettableParameter( 'checkbox', 'Gainful Workers by Occupational Group', value=True) persons_with_difficulty_option = UserSettableParameter( 'checkbox', 'Persons with Functional Difficulty', value=True) mobile_workforce_option = UserSettableParameter('checkbox', 'Mobile Workforce', value=True) elderly_option = UserSettableParameter('checkbox', 'Elderly Population', value=True) person_health_social_work_option = UserSettableParameter( 'checkbox', 'Persons with Human Health and Social Work Activities', value=True) person_prof_tech_option = UserSettableParameter( 'checkbox', 'Persons with Professional, Scientific and Technical Activities', value=True) person_admin_support_option = UserSettableParameter( 'checkbox', 'Persons with Administrative and Support Service Activities', value=True)
return portrayal = {"Shape": "circle", "r": 0.5, "Filled": "true", "Layer": 0} if agent.type == 0: portrayal["Color"] = ["#FF0000", "#FF9999"] portrayal["stroke_color"] = "#00FF00" else: portrayal["Color"] = ["#0000FF", "#9999FF"] portrayal["stroke_color"] = "#000000" return portrayal happy_element = HappyElement() canvas_element = CanvasGrid(schelling_draw, 20, 20, 500, 500) happy_chart = ChartModule([{"Label": "happy", "Color": "Black"}]) model_params = { "height": 20, "width": 20, "density": UserSettableParameter("slider", "Agent density", 0.8, 0.1, 1.0, 0.1), "minority_pc": UserSettableParameter("slider", "Fraction minority", 0.2, 0.00, 1.0, 0.05), "homophily": UserSettableParameter("slider", "Homophily", 3, 0, 8, 1) } server = ModularServer(Schelling, [canvas_element, happy_element, happy_chart], "Schelling", model_params)
# Define the charts on our web interface visualisation status_chart = ChartModule([{"Label": "Alive", "Color": "blue"}, {"Label": "Dead", "Color": "red"}, {"Label": "Escaped", "Color": "green"}]) mobility_chart = ChartModule([{"Label": "Normal", "Color": "green"}, {"Label": "Panic", "Color": "red"}, {"Label": "Incapacitated", "Color": "blue"}]) collaboration_chart = ChartModule([{"Label": "Verbal Collaboration", "Color": "orange"}, {"Label": "Physical Collaboration", "Color": "red"}, {"Label": "Morale Collaboration", "Color": "pink"}]) # Get list of available floorplans floor_plans = [f for f in listdir("fire_evacuation/floorplans") if path.isfile(path.join("fire_evacuation/floorplans", f))] # Specify the parameters changeable by the user, in the web interface model_params = { "floor_plan_file": UserSettableParameter("choice", "Floorplan", value=floor_plans[0], choices=floor_plans), "human_count": UserSettableParameter("number", "Number Of Human Agents", value=10), "collaboration_percentage": UserSettableParameter("slider", "Percentage Collaborating", value=50, min_value=0, max_value=100, step=10), "fire_probability": UserSettableParameter("slider", "Probability of Fire", value=0.1, min_value=0, max_value=1, step=0.01), "random_spawn": UserSettableParameter('checkbox', 'Spawn Agents at Random Locations', value=True), "visualise_vision": UserSettableParameter('checkbox', 'Show Agent Vision', value=False), "save_plots": UserSettableParameter('checkbox', 'Save plots to file', value=True) } # Start the visual server with the model server = ModularServer(FireEvacuation, [canvas_element, status_chart, mobility_chart, collaboration_chart], "Fire Evacuation", model_params)
# "r": 6, # "Filled": "true", # "Color": "Yellow"} else: display = { "Shape": "circle", "r": guest_size_dict[agent.role], "Filled": "True", "Color": guest_color_dict[agent.role] } return display canvas = SimpleCanvas(agent_draw, 500, 500) model_params = {"num_agents": 50} n_party = UserSettableParameter('slider', 'Number of party agents', 10, 2, 20, 1) n_guard = UserSettableParameter('slider', 'Number of guard agents', 10, 2, 20, 1) n_trouble = UserSettableParameter('slider', 'Number of troublemaker agents', 10, 2, 20, 1) n_celeb = UserSettableParameter('slider', 'Number of celebrity agents', 10, 2, 20, 1) n_hippie = UserSettableParameter('slider', 'Number of hippie agents', 10, 2, 20, 1) learning = UserSettableParameter('checkbox', 'Learning', True) pareto_fight = UserSettableParameter('checkbox', 'Pareto Fight', False) pareto = UserSettableParameter('checkbox', 'Pareto', False) lucia = UserSettableParameter('checkbox', 'Lucia Dagen', False) # chart = ChartModule([{"Label": "Alive agents",
return portrayal canvas_element = CanvasGrid(walker_portrayal, 30, 30, 500, 500) chart_element = ChartModule([{ "Label": "Average Finished Cyan Walkers", "Color": "#00FFFF" }, { "Label": "Average Finished Red Walkers", "Color": "#AA0000" }]) model_params = { "initial_cyan_walkers": UserSettableParameter("slider", "Initial cyan walkers", 50, 1, 50), "initial_red_walkers": UserSettableParameter("slider", "Initial red walkers", 50, 1, 50), "cyan_noise": UserSettableParameter("slider", "Cyan walker noise", 0, 0, 100), "red_noise": UserSettableParameter("slider", "Red walker noise", 0, 0, 100), "cyan_box_drop_chance": UserSettableParameter("slider", "Cyan box drop chance", 5, 0, 100), "cyan_box_duration": UserSettableParameter("slider", "Cyan box duration", 5, 0, 100), "cyan_box_amount": UserSettableParameter("slider", "Cyan box amount", 5, 0, 20), "red_box_drop_chance": UserSettableParameter("slider", "Red box drop chance", 5, 0, 100), "red_box_duration":
chart_element = ChartModule([{ "Label": "amazonprime", "Color": "#0000FF" }, { "Label": "netflix", "Color": "#FF0000" }, { "Label": "disneyplus", "Color": "#00FF00" } #{"Label": "appletv", "Color": "#000000"} ]) model_params = { "quality_amazonprime": UserSettableParameter('slider', 'Quality amazonprime', 25, 1, 100, 1), "quality_netflix": UserSettableParameter('slider', 'Quality netflix', 50, 1, 100, 1), "quality_disneyplus": UserSettableParameter('slider', 'Quality disneyplus', 15, 1, 100, 1), "content_amazonprime": UserSettableParameter('slider', 'Content amazonprime', 15, 1, 100, 1), "content_netflix": UserSettableParameter('slider', 'Content netflix', 5, 1, 100, 1), "content_disneyplus": UserSettableParameter('slider', 'Content disneyplus', 7, 1, 100, 1) #"initial_appletv": UserSettableParameter('slider', 'Initial appletv', 10, 1, 100, 1) } server = ModularServer(market, [canvas_element, chart_element], "DIgital TV Effect", model_params)
if agent.savings < 10 and agent.loans < 10: color = MID_COLOR if agent.loans > 10: color = POOR_COLOR portrayal["Color"] = color return portrayal # dictionary of user settable parameters - these map to the model __init__ parameters model_params = { "init_people": UserSettableParameter("slider", "People", 25, 1, 200, description="Initial Number of People"), "rich_threshold": UserSettableParameter( "slider", "Rich Threshold", 10, 1, 20, description="Upper End of Random Initial Wallet Amount", ), "reserve_percent": UserSettableParameter( "slider", "Reserves",