You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Inderjit Gill 5429362594 1843-filled-schotter 1 year ago
client bug fix: incorrect buildTraits return code check 1 year ago
core removed debugging 1 year ago
docs each keyword 1 year ago
native native debug message 1 year ago
server 1843-filled-schotter 1 year ago
.gitignore checking return codes for sen_compile_program* functions 1 year ago
LICENSE project wide GPLv3 license file 2 years ago re-organising project layout 1 year ago


Seni is a Scheme-like graphical language that runs on modern web browsers.

It’s scripts can be annotated so that genetic algorithms can generate variations and the user can select which of the generated images should be used in future generations.



  1. rust and node.js should be installed


Building the server:

  1. cd server
  2. cargo build --release
  3. cd ..
  4. cp server/target/release/seni-server .

Building wasm file:

  1. cd client
  2. npm run build:wasm

Building app for development:

  1. cd client/www
  2. npm run build:js

Building app for production:

  1. cd client/www
  2. npm run build:js:production
  1. cd client/www
  2. npm run build:js:piece
  3. copy files from dist into appropriate folder of repo
  1. cd client/www
  2. npm run build:js:devpiece
  3. start the server
  4. visit http://localhost:3210/piece.html

Starting the server

  1. ./seni-server
  2. visit http://localhost:3210


  • compiling natively and running tests on Linux/MacOS:

cd core ./

  • compiling natively and running tests on Windows

cd core ./test_win.bat


  1. npm run publish:local
  2. upload the app directory onto a server

Windows 10 Shenanigans

You will need to build a seni-server.exe and add it to the Firewall whitelist in order to prevent a Windows Firewall dialog appearing every time.

  1. Build the server using the instructions above
  2. In the windows control panel go to: Control Panel\All Control Panel Items\Windows Firewall\Allowed applications and add the seni-server.exe that was just created
  3. seni-server.exe

C used in WebAssembly

Keep things simple by using C. Avoid C++, even trying to use it as a ‘nicer C’ results in increased compilation times, obtuse error messages, complicates the build/link commands and reduces platform independance. Switch to Rust if you need a better C

test the output by opening build_wasm\seni-wasm.html in a browser that supports WebAssembly

  • visual studio integration with the native windows build build the windows version (test.exe) load visual studio with: devenv build\test.exe Insert any breakpoints Press F11 to begin execution When exiting for the first time, save the MSDev solution