A framework for simulation of networks of hybrid automata, similar to SHIFT and Lambda-SHIFT. Includes ruby-based DSL for defining simulation components, and ruby/C code generation and runtime.
Ruby C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bench
doc
examples
ext/redshift
lib
test
.gitignore
README.md
RELEASE-NOTES
Rakefile
TODO
redshift.gemspec

README.md

RedShift

A framework for simulation of networks of hybrid automata, similar to SHIFT and Lambda-SHIFT. Includes ruby-based DSL for defining simulation components, and ruby/C code generation and runtime.

RedShift is for simulating digital devices operating in an analog world. It's also for simulating any system that exhibits a mix of discrete and continuous behavior.

There's not much documentation yet, but plenty of examples. Some of the original SHIFT papers are available: Shift: A Formalism and a Programming Language for Dynamic Networks of Hybrid Automata.

My 2009 rubyconf talk discusses RedShift.

Requirements

RedShift needs ruby (1.8, 1.9, 2.0, 2.1) and a compatible C compiler. If you can build native gems, you're all set.

Some of the examples also use Ruby/Tk and the tkar gem.

Installation

Install as gem:

gem install redshift

Env vars

If you have a multicore system and are using the gnu toolchain, set

REDSHIFT_MAKE_ARGS='-j -l2'

or some variation. You'll find that rebuilds of your simulation code go faster.

What is RedShift?

RedShift combines dataflow programming (for continuous variables) with actor-based programming (for discrete events, states, and variables, and also for continuous variables).

Examples

See the examples dir.

The RedCloud project is based on RedShift.


Copyright (C) 2001-2014, Joel VanderWerf, mailto:vjoel@users.sourceforge.net Distributed under the Ruby license. See www.ruby-lang.org.