System Dynamics-like Feedback Loops?

lusiad's icon

I'm just learning Max and had (what I hope) is an easy question. I currently use a graphical programming software package called Stella (put out by isee systems). It's not great at many things, but excellent at a few. I do a lot of demographics modeling (showing people migrating between cities for example) and Stella makes this easy: the user draws 'flows' (they literally look like tubes) that connect to 'stocks'. The quantity of stuff moving through the flows into the stocks is determined by a 'valve'.

What makes Stella useful is that you can have information about a given stock at a given time alter the behavior of the flows feeding into it. Feedback loops are easy. I think this is trivial to do in Max, from what I can tell so far.

The other thing Stella can do (that's really useful for me) is have stocks hold onto their contents for a specific period of time. You can for example set up a stock so that all units of stuff entering it are held their for 15 units of time before exiting. Can I do something like that in Max?

I can easily replicate the quantitative aspects of my Stella projects in Python, but I really enjoy showing my clients graphically the logic of the underlying model. And I'd much prefer to do the same thing in Max, which has an absolutely beautiful GUI object library that's light years ahead of anything comparable. Plus, I find that it's often easier to mock something up in Stella than in Python; and I'm hoping the same thing will be true of Max.

Thank you for your comments.

Luke Hall's icon

The [pipe] object will let you delay the source by a certain number of milliseconds, this will probably do what you require.