TRUE brochure

TRUE : Temporal Reasoning Universal Elaboration

TRUE, a System dynamics software proposed by True-World system Dynamics Software
is a tool for modeling, simulating, analyzing and optimizing multidomain dynamics systems such as :

  • tracing of financial flows
  • operation and strategic research, decision-making
  • conflict management dependent on scarce resources
  • risk management dependent on Earth resources
  • Macro-economics, Micro-economics, Econometrics, Econophysics, systemic
  • Mathematics, traditional Physics, Numerical Analysis, statistical
  • Relative Mechanic, social mathematics
  • Medicine

Principle of this software :

  • transparent and implied mathematical modeling
  • coupled nonlinear differential equations of order nn
  • system dynamics modeling in discrete and continuous time (Euler)
  • dynamic optimization using retro-calculation functions :
  • wysiwyg graphic interface and 3D modeller : Multibody Dynamics Simulation, Multibody system,
    Procedural animation


Technical data

Installation and hardware requirements

  • windows 98/NT/2000/XP
  • Vista (speech synthesis only in English)
  • Windows7 & 8 (speech synthesis after installing Microsoft MSAgentWin7 and MSAgent)


Database name : hyperfile from Windev

  • the global database contains 38 files, shared dictionary and trash included
  • each model contains 35 files

Integration approach

  • Stock and flow
  • mirror stock and mirror flow : to verify the integrity of the model (sum of stocks = k)
  • discrete mode : independent multiple time scales defined by seven temporal parameters
  • simulation in both discrete and continuous mode
  • type of value per flow : constant, procedure, array, scatter (WithLookUp)
  • circularity : one or more independent equations per flow, executed according their chronologies
  • multiple and transparent stock updating, per unit of time, according chronologies of the equations


  • frames, boxes, multi-view, groups

External input output

  • can read text and Excel files
  • can export data to text, xml, doc and xls files
  • native access possible with following databases : AS/400, DB2, Informix, MySQL, Oracle, SQL Server,...

Mathematical analysis

  • Sensitivity analysis
  • dynamic optimization : nested dynamic back-calculation
    • algorithm for intelligent backtracking :
      BT Backtrack, loop back, dynamic backtracking, Dynamic programming
  • combined vectorization up to twenty vectors (also called arrays)
  • inertia and memory of the model : delay

Programming language in flow equations

  • English and French W-language from Windev by PcSoft :
  • This language allows to dialog with other software, database, etc. :
    • Automation, Com, Dcom, Rpc, DotNet, Http, Socket, Ftp, J2eee, Soap, Ole, ...
  • dynamic compilation
  • Syntax highlighting editor

3D animated render, 3D procedural animation

  • OpenGL 3D modeler to create 3D render animated by values returned by the model after calculus
  • Geometric primitives : bone, cube, box, cone, torus, cylinder, disk, map2d, particles, waves,...
  • texturing, blending, ...


  • magnetic grid, values calibration
  • Animated 2D or 3D model display, zoom, multi-view, panorama
  • rename, delete, undelete, copy and paste with preservation of integrity

Simulation display

  • time scale and cycle scale including ReStartAt periods
  • buttons : start, pause, stop, loop, speed, previous, next time and cycle
  • spins : current time, cycle, ReStartAt, period for graphs and export data

Restitution in the model after calculus

  • dynamic stock and flow values, stock and flow shadows
  • dynamic stock and flow causalities, stock and flow shadows causalities
  • graphs with dynamic cursor (overlay)
  • dynamic messages
  • dynamic speech synthesis in English or French with animated characters ( if MsAgent installed on Vista and windows 7)
  • 3D animated objects (overlay)
  • images (overlay)

Application workspace and symbols

TRUE environment

TRUE notation

TRUE version and features

TRUE is free of charge, available in French and in English.



In a model, if the time unit is the month, it is possible to calculate it for a final time = 36, i.e. 3 years.
Defining the temporality is define the basic cycle.
In this example, the basic cycle can be one year containing 12 months, i.e. 12 base units.
The model will then be calculated for the number of cycles required.

Time scales

All the equations are not necessarily executed at each unit of time,
some may be executed according to their own cycles,
so the model can operate simultaneously with different time scales.

Each equation (constant, procedure, array or scatter) in a flow,
has its own temporal parameters, which specify exactly when it will be executed.

  • Temporal parameters : rate, chronology, start, interval, repeat, type of cycle
    (default, float default, float filtered), filtered cycles

The parameter Rate is only effective if the flow links two stocks.

  • If the parameter Rate is enable, the stocks will be updated by the result of the action (result = y / TimeStepI) at the end of the unit of time, before the transition to the next unit of time (as in Vensim).
  • If the parameter Rate is not enable, the stocks will be updated by the result of the action (result = y ) immediatly after the action has been calculated.

When equations are executed at the same time,
the chronology parameter specifies the execution order, in the unit of time.

Flow and virtual flow

Flows and virtual flows contain several equations (also called actions),
executed according their temporal parameters.

  • A flow links two stocks : the source stock and the target stock ;
    the value calculated by each equation updates these stocks :
    source stock -= value, target stock += value, according its chronology, if the parameter Rate is not enable.
  • source stock -= (value/TimeStepI), target stock += (value/TimeStepI), at the end of the unit of time, if the parameter Rate is enable.
  • A virtual flow doesn't link stocks, it doesn't update stocks.
Stock and mirror stock
  • A stock can be updated several times in the current unit of time,
    according to the temporal parameters of the equations contained in the flows that link it to the other stocks.
  • A mirror stock is updated after each change of its source stocks;
    its value is the sum of the stocks linked to it, via mirror flows.
    If a mirror stock is linked to all the stocks of the model,
    its value will remain constant, according to the principle of conservation.
Causal link (also called dependency link)

A causal link indicates that an equation in a flow depends
on the current or the past value of one stock or another flow.
Causal links are dynamic, according the values, after model calculus.


There is circularity when two flows are dependent on each other in the same time ;
at least 3 equations with successive chronologies are required.


combined vectorization up to twenty vectors

Dynamic optimization

The retro-calculation function ReStartAt() can be called in each equations, after testing the variables.
When called, the calculus stop, it restarts at a previous time, until the stop time,
and this can be done as many times as it is necessary.

Jumping to the restart time increments several counters of passage, one for equation,
one for flow and one global for the model.
The stat function ReStartStat() is called to retrieve counter values, to determine how modify variables,
to obtain the expected results. When several equations call the ReStartAt() function, the loop back is nested.

Sensitivity analysis

Only one call to the function ReStartAt() is necessary, at the end of the last time of the last cycle,
to restart calculus, as many times as necessary, then with the function ReStartStat,
the variable changes according to the passage counters.

ReStartAt display

After calculus, the values and the passages created by the function ReStartAt can be selected and displayed for analysis.

See also