Skip to content

jkallu/Visual-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visual Programming and Simulation

Build Status Documentation Status

  • Visual programming uses a mix of visual blocks and functional programming (coding) methods.
  • The program design uses node-graph editor.
  • Each blocks has an additional capability of writing expressions (minimalist coding).
  • For example, user can easily create an array, do math functions on it and then plot the outputs.
  • When the visual blocks are executed, it generates the optimised C/C++ codes for the blocks, and the corresponding Makefile.
  • Then it do a compilation of the generated code and create a library Just in Time (JIT).
  • It then dynamically load the library and execute the the library.
  • Result of each block is brought back to the visual blocks ouput data and displayed.
  • This can be considered as the simulation of the program and data execution.
  • In this way one can easily see the outputs of each blocks just in time and can easily debug the program.
  • Once the program execution is simulated and tested one can generate a standalone Makefile and the main program which calls the already created library and execute this program and generate the binary.
  • This binary uses the same library that was used for the testing and simulation.
  • In this way the simulation and stand alone results will be the same.
  • More over the output binary is a compiled (non interpreted) binary.
  • Also blocks supports mathematical expressions which are then compiled to C/C++.
  • Set comprehension / List comprehension capability.
  • Support for GSL library, for example ode solver in GSL has a visual block. User only need to write the ode function to be solved. All the internal wirings are done automatically.
  • Support for 1D, 2D and 3D simulation. For example, one can connect a sine wave data (which is a solution to the spring mass system) to a 1D block, wher it accepts two data, time and one dimensional position data. The position data can be aligned in any of three axes (x, y or z). A sphere in the block will follow the dat, in this example sine data.
  • The GUI is developed using Qt.
  • More is on the way... currently this program is under development.

Documentation (under development)

Demos

Generate and plot sine function

Alt text

Generate and simulate sine function

Alt text

Simulation with Gnuplot

Alt text

Run with Docker image

First, clone the repository from github.

git clone https://github.com/jkallu/Visual-Programming.git
cd Visual-Programming/Node

The following command downloads the docker file from dockerhub (if not already exists) and build the source.

sudo docker run --rm -v `pwd`:/project/source -v `pwd`/build:/project/build jinkallu/visual_programming:latest

The binary will be saved in build directory. To run the binary with X window, execute the following commands,

Linux

xhost +local:docker   
sudo docker run --rm -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v `pwd`:/project/source -v `pwd`/build:/project/build jinkallu/visual_programming:latest ./Node

Windows

Install X server for windows. For example, VcXsrv Windows X Server. Then launch Xlaunch from start and set it up with following,

  1. select 'Multipple windows'
  2. select 'Start no client'
  3. check also 'disable access control' and
  4. finish
    More details on how to run docker image with gui apps...

In Windows powershell

ipconfig

Find the ip of the system and then

set-variable -name DISPLAY -value 192.168.0.5:0.0   
sudo docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v `pwd`:/project/source -v `pwd`/build:/project/build jinkallu/visual_programming:latest ./Node

Libraries used

Qt 5 or later
Necessary modules

gui widgets opengl script 3dcore 3drender 3dinput 3dlogic 3dextras 3danimation printsupport svg network

GNU Scientific Library (GSL)

$ sudo apt-get install libgsl23 libgslcblas0 libgsl-dbg libgsl-dev

Gnuplot

Documentation (under development)

About

Visual programming and simulation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published