DRAKON is a visual language for specifications from the Russian space program. DRAKON is used for capturing requirements and building software that controls spacecraft.
The rules of DRAKON are optimized to ensure easy understanding by human beings.
DRAKON is gaining popularity in other areas beyond software, such as medical textbooks. The purpose of DRAKON is to represent any knowledge that explains how to accomplish a goal.
DRAKON Editor for Web
Create DRAKON flowcharts directly in your browser. No installation required.
See drakon-editor.com.
DRAKON Editor for Desktop
DRAKON Editor is a free tool for authoring DRAKON flowcharts. It also supports sequence diagrams, entity-relationship and class diagrams.
With DRAKON Editor, you can quickly draw diagrams for:
- software requirements and specifications;
- documenting existing software systems;
- business processes;
- procedures and rules;
- any other information that tells "how to do something".
DRAKON Editor runs on Windows, Mac and Linux.
The user interface of DRAKON Editor is extremely simple and straightforward.
Software developers can build real programs with DRAKON Editor. Source code can be generated in several programming languages, including Java, Processing.org, D, C#, C/C++ (with Qt support), Python, Tcl, Javascript, Lua, Erlang, AutoHotkey and Verilog
News
10 March 2016: DRAKON Editor 1.27 is out
- Go language support.
- Nice foreach code generation for Java, C#, Python, Tcl, Lua, D.
- Better boolean short-circuit detection.
- C/C++ code generator does not generate redundant return statements anymore.
- Erlang generator does not emit throw when no default clause is present in a select statement.
- JavaScript code generator: different foreach for objects and arrays.
- Stricter handling of select keyword inside select icon.
7 November 2015: DRAKON Editor for Web
DRAKON Editor for Web is now available.
http://drakon-editor.com
11 June 2015: A talk on DRAKON-Erlang at Erlang User Conference in Stockholm
The slides: drakon-erlang-slides.zip
The diagrams and source code: drakon-erlang-src.zip
1 June 2015: DRAKON Editor 1.26 is out
- Massive improvements to the Erlang code generator: receive statement, select/case macroicon produces "case X of" statement, visual supervision tree.
- A bug fixed in the JavaScript code generator.
- Added a warning before export to PNG.
29 December 2014: DRAKON, Actors and Message Passing
The goal is to see how practical DRAKON is in the context of actors, state machines and message passing.
What has been done:
- A simple actor framework has been developed in C#.
- The C# code generator for DRAKON Editor has been extended to emit code for actors.
- Two sample applications were built using the runtime and the code generator. The sample applications show off concurrency based on actors and message passing.
Each actor in the applications is a DRAKON diagram. Read more...
Get the source code on GitHub
18 December 2014: DRAKON Editor 1.25 is out
- Syntaxhighlighting!
- Improvements to the C# code generator for state machines.
29 November 2014: DRAKON Editor 1.24 is out
- Setting zoom for all diagrams simultaneously.
- Bug fixes, including a problem with Mac shortcuts, AutoHotkey code generator etc.
21 September 2014: DRAKON Editor 1.23 is out
What's new:
- Code generation for the AutoHotkey language.
- Code generation for the Verilog language.
- Code generation for state machines (finite automata) in Lua and JavaScript.
- Improvements in the JavaScript generator: better iteration, support for method functions and "closure" namespaces.
- State machines and ERIL support in the code generator for the C language.
- More flexibility added to "Select-Case" icons. It is now possible to put any condition in a "Case" icon, not just a value.
- Other small improvements in code generation for several languages.
- Bug fixes.
- Switch to Tcl/Tk 8.6. It's a major change in system requirements. DRAKON Editor now needs Tcl/Tk 8.6 to run. Tcl/Tk 8.5 is not supported any more.
Please see the examples in the examples/automaton folder inside DRAKON Editor's zip file. There you can find small programs based on finite automata represented in DRAKON.
8 February 2014. Tutorial: how to add a language to DRAKON Editor
This tutorial explains how to add an arbitrary language to DRAKON Editor.
Code generation in DRAKON Editor is implemented with plugins. Creating a code generator for yet another programming languages can be done by adding a plugin. The tutorial takes the D language as an example.Read more...
As a bonus, DRAKON Editor now supports code generation for the D language!
2 February 2014: DRAKON Editor 1.22 is out
- A bug fix related to inline comment icons in Erlang diagrams.
- The content of the "if" icon in Erlang is not limited to the guard syntax any more (patch by Maas-Maarten Zeeman).
- State machine (finite automata) support for Erlang code generation.Read more and see the examples/automaton/Erlang folder in the distributive.
25 January 2014: An article on state machines
Starting from version 1.21, DRAKON Editor supports code generation from DRAKON state machine diagrams. Currently, only the C# language is supported.
State machine is a powerful abstraction with a wide area of use. A state machine can be defined as an object that can alternate between different types of behaviour.Read more...
20 January 2014: An article on the ERIL language
ERIL is a visual language for representing the data structure of computer programs. While DRAKON's purpose is to show the physiology of software, ERIL concentrates on its anatomy.
Currently, DRAKON Editor supports code generation from ERIL diagrams to C# and Tcl.
8 January 2014: DRAKON Editor 1.21 is out
- State machine (finite automata) support for C# code generation.
- ERIL language support for C# and Tcl code generation. (Code generation from entity-relationship and inheritance diagrams.) See the examples/structure folder in the distributive.
- Hyperlinks in text. (Available through context meny, "Links".)
- Minor bug fixes.
16 July 2013: DRAKON Editor 1.20 is out
- Bug fixes.
- Call hierarchy.
- Added support for Processing.org programming language.
- Go to branch within a silhouette diagram.
- The color of icons can be changed.
15 June 2013: DRAKON Editor 1.19 is out
- Automatic width for "If" icons has been reduced. Icons take less diagram space.
- Modal dialogs improved on Linux.
12 June 2013: DRAKON Tutorial Part 3
DRAKON Tutorial, Part 3: Simple recipes of beauty
10 June 2013: DRAKON Tutorial Part 2
DRAKON Tutorial, Part 2: Interaction with the outside world, parallel algorithms and real time
06 June 2013: DRAKON Tutorial Part 1
DRAKON Tutorial, Part 1: How to draw DRAKON flowcharts
20 May 2013: DRAKON Editor 1.18 is out
- DRAKON Editor now supports the full set of DRAKON icons.
- Uniform spacing rules in the advanced editing mode (with Shift pressed).
- Entity-Relationship diagram type added.
- Canvas can be scrolled with mouse drag when both mouse buttons are pressed.
- Added more shortcuts: F2 edits primary text, F3 edits secondary text.
01 May 2013: DRAKON Editor 1.17 is out
- Code generation: warnings removed for C# and Lua compilers.
- User can now define custome text instead of "YES", "NO" and "End".
- Color themes can be changed from Global settings.
- Icon widths get adjusted automatically for the whole skewer after the text is changed for a single icon.
- Note comments got a better visual style.
- Loop end icons can have text.
24 February 2013: DRAKON Editor 1.15 is out
- Fixed a bug in the code generator.
- Some metaprogramming features for the C language.
11 August 2012: DRAKON Editor 1.14 is out
- Fixed Lua source code generator.
- Double mouse wheel click invokes View / See All.
04 August 2012: DRAKON Editor 1.13 is out
- Code generation for Lua language.
01 August 2012: DRAKON Editor 1.12 is out
- Open/Save file dialogs for .drn files and for export remember the last directory.
- Inserting "if", "branch", "select" and "loop" items made easier.
- Ctrl-X, Ctrl-C, Ctrl-V, Ctrl-A shortcuts fixed for non-English keyboard layouts.
- Added menu items: Edit/Tidy up, Edit/Tidy up all diagrams. The shortcut for Tidy up is Ctrl-T.
- Colors config in scripts/colors.tcl.
02 May 2012: DRAKON Editor 1.11 is out
- Text in Action and Insertion icons is now left-aligned.
- Diagrams now look neat and tidy. The Edit/Adjust icon sizes menu command sets equal width to the icons on the same vertical.
- Fixed the bug about extracting class names in C++.
- Qt support: now you can explicitly mark the diagram as a signal or a slot (see QtC++ folder).
08 April 2012: DRAKON Editor 1.10 is out
- A few minor usability improvements.
- Javascript language support.
- Erlang language support.
05 March 2012: DRAKON Editor 1.9 is out
- Fast insertion of items using keyboard shortcuts.
- The list of previously opened files.
- Custom fonts.
- Java language support.
- C# language support.
- Code generation for Python and Tcl without goto simulation.
01 January 2012: DRAKON Editor 1.8 is out
- The performance of the Smart mode has been significantly improved.
31 December 2011: DRAKON Editor 1.7 is out
- "Smart" editing mode.
To activate the Smart mode, hold SHIFT while dragging items around on the canvas.
When you drag an item in the Smart mode, all connected lines and items also move consistently. The diagram structure is preserved.
12 December 2011: DRAKON Editor 1.6 is out
- Fixed a code generation bug (occuring with Insertion icons).
- Resolved Ubuntu 11.x incompatibility issues.
11 December 2011: DRAKON Editor 1.5 is out
- More improvements in the interface:
- If you grab a line by its end and drag, all the connected items will also move.
- The flat list of diagrams has been replaced with a tree.
- "Find all references", "Go to definition", "Jump to diagram", "Jump to item" etc.
- Code generation for:
- Plain C
- C++
- Python 2.x and 3.x
- Tcl
01 November 2011: DRAKON Editor 1.4 is out
- Verification according to the rules of the DRAKON language (DRAKON-1).
- Creation of silhouette diagrams made easier.
- Address icons can be directed towards a branch using the context menu.
- Address icons update their text when the target branch gets renamed.
02 October 2011: DRAKON Editor 1.3 is out
- A massive amount of usability improvements.
- Export to PNG.
- Export to PDF with colors.
28 September 2011: DRAKON Editor 1.2 is out
- Zoom.
- Search.
- Colored icons.
- Many user interface improvements.
11 September 2011: DRAKON Editor 1.1 is out
Contact: drakon.editor@gmail.com