SimCX Reference

Core

A simulation framework for complex systems modelling and analysis.

class simcx.Display(width=500, height=500, interval=0.05, multi_sampling=True, **kwargs)[source]

Bases: object

add_simulator(sim: simcx.Simulator)[source]
add_visual(visual: simcx.Visual, x=0, y=0)[source]
on_close()[source]
on_draw()[source]
on_key_press(symbol, modifiers)[source]
start_recording(filename='simcx.mp4', fps=None, bitrate=1800)[source]
class simcx.FFMpegWriter(fps=5, codec=None, bitrate=None, extra_args=None, metadata=None)[source]

Bases: matplotlib.animation.FFMpegWriter

frame_size

A tuple (width,height) in pixels of a movie frame.

grab_frame(**savefig_kwargs)[source]

Grab the image information from the display and save as a movie frame. The keyword arguments are not being used in the subclass.

setup(display, outfile)[source]

Perform setup for writing the movie file. display: simcx.Display instance The Display instance whose framebuffer we want to use. outfile: string The filename of the resulting movie file

class simcx.MplVisual(sim: simcx.Simulator, **kwargs)[source]

Bases: simcx.Visual

update_image()[source]
class simcx.PyafaiSimulator(world)[source]

Bases: simcx.Simulator

step(delta=0)[source]
class simcx.PyafaiVisual(sim: simcx.PyafaiSimulator, width=500, height=500)[source]

Bases: simcx.Visual

draw()[source]
class simcx.Simulator[source]

Bases: object

reset()[source]
step(delta=0)[source]
class simcx.Visual(sim: simcx.Simulator, **kwargs)[source]

Bases: object

draw()[source]
simcx.run()[source]

Submodules

simcx.simulators module

This module provides several ready-made simulator classes. Used mainly for the examples given in the Complex Systems course. In this current version, these should not be considered stable in terms of API.

class simcx.simulators.FinalStateIterator(func, seed, start, end, discard=1000, samples=250, delta=0.01)[source]

Bases: simcx.Simulator

step(delta=0)[source]
class simcx.simulators.FunctionIterator(func, initial_states)[source]

Bases: simcx.Simulator

reset()[source]
step(delta=0)[source]
class simcx.simulators.FunctionIterator2D(func, initial_state)[source]

Bases: simcx.Simulator

step(delta=0)[source]
class simcx.simulators.IFS(transforms, probs, step_size=100)[source]

Bases: simcx.Simulator

An Iterated Function Systems simulator using the Chaos Game.

step(delta=0, discard=False)[source]
class simcx.simulators.JuliaSet(c, min_x=-2, max_x=2, min_y=-2, max_y=2, samples=500, iterations=100)[source]

Bases: simcx.Simulator

A simulator to calculate the Julia Set of a function in the form f(z) = z^2 + c. The simulator will compute the Julia Set for the given range (min_x, min_y) to (max_x, max_y) on creation of the instance.

Note: numexpr optimized version inspired by code by Jean-François Puget.

step(delta=0)[source]

simcx.visuals module

This module provides several ready-made visual classes. Used mainly for the examples given in the Complex Systems course. In this current version, these should not be considered stable in terms of API.

class simcx.visuals.BifurcationDiagram(sim: simcx.simulators.FinalStateIterator, **kwargs)[source]

Bases: simcx.MplVisual

draw()[source]
class simcx.visuals.CobWebVisual(sim: simcx.simulators.FunctionIterator, min_x, max_x, func_string='', **kwargs)[source]

Bases: simcx.MplVisual

draw()[source]
class simcx.visuals.FinalStateDiagram(sim: simcx.simulators.FunctionIterator, discard_initial=1000, **kwargs)[source]

Bases: simcx.MplVisual

draw()[source]
class simcx.visuals.FractalVisual(sim, gamma=1.0, **kwargs)[source]

Bases: simcx.MplVisual

class simcx.visuals.Line(sim: simcx.Simulator, x: list, y: list, auto_size=True, **kwargs)[source]

Bases: simcx.MplVisual

draw()[source]
class simcx.visuals.Lines(sim: simcx.Simulator, auto_size=True, **kwargs)[source]

Bases: simcx.MplVisual

draw()[source]
class simcx.visuals.PhaseSpace2D(sim: simcx.simulators.FunctionIterator2D, name_x, name_y, **kwargs)[source]

Bases: simcx.visuals.Line

class simcx.visuals.Points2D(sim, min_x=0.0, max_x=1.0, min_y=0.0, max_y=1.0, **kwargs)[source]

Bases: simcx.Visual

draw()[source]
class simcx.visuals.TimeSeries(sim: simcx.simulators.FunctionIterator, **kwargs)[source]

Bases: simcx.visuals.Lines