|
How to synchronize, mix, combine or transform
temporal media streams as varied as sounds, animations, melodies,
videos, controls, while abstracting from their nature? Since
application designers are more often artists and less often software
developpers, there is a strong need for simplifying design
software interface.
A consistent and robust mathematical
framework is being developed for the modeling of sequential and parallel aspects of
temporal media; its development towards application and system
design aims at providing simpler,
safer and more powerful software tools for the creation of
tomorrow's hierarchical, multi-scale and multi-modal pieces of
interactive art.
Algebra, partial order and category theory, logic, domain
specific languages, specialized GUIs and application experiments
in art oriented embedded systems design are the current corner stones of our approach.
Research objectives
The PoSET project thus aims at gathering and developing both
theoretical models and concrete applicable tools for designing,
programing, experimenting and running timed reactive systems.
For such a purpose, our research efforts are structured into four complementary research
axes:
- Models : developed in two directions: frontend models (for
system designer) and backend models (for formal analysis and
execution):
- Frontend models : under
development and study for some years, our frontend models is based on the notion of spatio temporal tiles,
where every complex behavior is defined from combining simpler
behaviors via a unique composition operator (the tile composition)
that allows and handles partial overlaps of behaviors both in time
and in space,
- Backend models (for system semantics) : based on
preliminary experiments and proposals, our backends models are
currently based on (timed) domains for denotational semantics and (updatable) timed and
reactive monad state machines; the relationship between both models
are to be understood in the depth, as well as the translation of
the frontend model into the back end model,
- Programing language : we are currently developing a fast
evolving experimental domain specific language (DSL), presently
embedded in Haskell, based on various extensions of the IO monad ; programming features
derive from the algebraic and categorical properties of
our models; because programs are redondant (a given model can be
described by several programs), categorical properties of
interest can also be weak properties (existence is guaranteed
but not unicity); in our approach, programs are
compiled into models, thus avoiding the schizophrenic approaches that amount to
prove correctness of models that are developed independently of
the programs implementing these models,
- Static analysis tools (for designer support) :
aside gathering the available modern tools (e.g. type systems),
we also address two main issues that are faced by designers when
developing interactive systems:
- Causality : output values to be produced at a given time may
only depends input values already received,
- Memory usage : input values that are no longer needed
must be discarded;
adequate methods allowing the designer to identify potential
causality violation and memory leaks in front end and back ends
models are currently under design,
- Usage and case study : as we also want to develop a concrete
expertise in interactive system design, various experiments are
conducted especially (and currently) in the field of interactive
music system design and implementation; in that field, one
especially interesting problem is to understand, collect and
implement a series of interactive stereotypical scenarios, that
may relevantly be used "on stage" with real musicians;
collaboration with people from IRCAM (Paris), SCRIME (Bordeaux) and GRAME (Lyon)
are especially welcome in these perspectives
Realizations, mostly on GitHub:
- Arts and science projects:
- Softwares and libraries:
- The Timed Monad Stream library : an
efficient reactive/timed programming language API embedded in
Haskell
or, to a lesser extent, also in
OCaml, based on various
monad extensions,
- More on
Timed Monad :
an experimental encoding of Timed Monad
Stream in Agda, with various proofs (shall be extended towards
monad with duration types)
- The Octopus language : a
smeigroup based programing language for fast 3D Animation
embedded in Haskell (shall be moved into the monad based approach)
- The T-calculus language : a
reactive/realtime programming language prototype embedded in
Haskell (alpha release in 2016 -- currently droped in favor of
the monad based approach)
Sponsors:
The PoSET project, started in 2011, located at LaBRI,
has been generously supported by:
It is also a partner of the Studio SCRIME.
|