Ongoing and Recent Work in SIMPL

There are number of ongoing projects within the sphere of the SIMPL open source project. They range from quite small to rather large. One of the most important is the continual maintenance and evolution of existing software. For example, the Python module which allows Python programs to SIMPL communicate with other SIMPL based programs (be they also written in Python or C or Tcl or Java) has been extended to include Python 3. Now the Python SIMPL module will run under the Python 2 or Python 3 versions of the interpreter. Here we will look at just a few of the current projects with an eye to diversity.


Arduino is a series of very small profile PCB's that are about the size of a deck of playing cards. They are heavily embedded and very inexpensive. The are driven by a single tasking microcontroller and for this reason do not require an operating system or expensive licences. Due to the fact that there is no operating system present, the chosen development language for the arduino is C/C++. Languages such as Python, Java and Tcl require an interpreter and/or a virtual machine type of environment which is not possible on an arduino.

Steps are now being taken to port the SIMPL C/C++ library to run on the arduino. When completed, the arduino will be able to communicate over the internet to other programs with SIMPL messaging. An arduino is shown below with a "blinky light device" attached. There are eight LEDs which can be turned on and off via the internet with a SIMPL control message.

Arduino SIMPL Photo Here
Raspberry Pi

Raspberry Pi is a very small and highly embedded computer which is also about the size of a deck of playing cards. They are inexpensive but this is due to Linux being the choice for an operating system and licence requirements such as those for Windows products are unnecessary. The preferred programming language is Python.

Experiments are presently being carried out with the hope that the Python SIMPL module will run with few or no changes on this very interesting niche platform.


Cygwin is a set of tools which provide a Linux-like API for Linux developed programs to run on Windows platforms. Given the cost and technical differences in C/C++ programming between Linux/Unix/etc. and Windows, SIMPL was never developed for use on Windows platforms. A current project is investigating the possibility of running the Linux variant of the SIMPL libraries on Windows via Cygwin. Upon success, SIMPL will be able to run transparently on Windows hosts as well.

Web-based SIMPL

SIMPL has now been used in conjunction with a CGI program. See the diagram below.

CGI SIMPL Pictorial Here

The browser sends a form containing some desired information via the web server to a a CGI program that is called by the server. This CGI program gathers the form-based information, constructs a SIMPL message containing that information and sends it to the program called "puzzle solver". The puzzle solver processes the information and then constructs a return SIMPL message to the CGI program. The CGI program formats this replied information from the engine into HTML and sends it back to the browser. The browser then renders the HTML code coming from the CGI program.

This is the basis for the Sudoku puzzle application that is also attached to this web site. Try the sudoku puzzle and see if you can figure out how it must work.

SIMPL Home More About SIMPL SIMPL Web Courses SIMPL Book Sudoku Puzzle