RiTa.js: a generative language toolkit for JavaScript
The RiTa website
RiTa.js is designed to an easy-to-use toolkit for experiments in natural language and generative literature, based on the original RiTa library for Processing/Java. RiTa.js works alone or with p5.js or node/npm, or in the browser. All RiTa and RiTa.js tools are free/libre/open-source via the GPL.
About the project
- Author: Daniel C. Howe
- Web Site: https://rednoise.org/rita
- Reference: http://www.rednoise.org/rita/reference/
- License: GPL (see included LICENSE file)
- Github Repo: https://github.com/dhowe/RiTaJS/
- Issues: https://github.com/dhowe/RiTa/issues
- FAQ: https://github.com/dhowe/RiTa/wiki
- Related: RiTa (Java)
Â
A simple sketch
Create a new file on your desktop called 'test.html' and download the latest rita.js from here, add the following lines, save and drag it into a browser:
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="./rita.min.js"></script>
<script>
window.onload = function() {
let words = RiTa.tokenize("The elephant took a bite!");
$('#content').text(words);
};
</script>
<div id="content" width=200 height=200></div>
<html>
node.js and npm
WithTo install: $ npm install rita
let rita = require('rita');
let rs = rita.RiString("The elephant took a bite!");
console.log(rs.features());
p5.js
WithCreate a new file on your desktop called 'test.html' and download the latest rita.js from here, add the following lines, save and drag it into a browser:
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.3/p5.min.js"></script>
<script src="./rita.min.js"></script>
<script>
function setup() {
createCanvas(200,200);
background(50);
textSize(20);
noStroke();
let words = RiTa.tokenize("The elephant took a bite!")
for (let i=0; i < words.length; i++) {
text(words[i], 50, 50 + i*20);
}
}
</script>
</html>
browserify and npm
WithInstall browserify (if you haven't already)
$ sudo npm install -g browserify
Create a file called 'main.js' with the following code:
require('rita');
let rs = RiString("The elephant took a bite!");
console.log(rs.features());
Now install RiTa
$ npm install rita
Now use browserify to pack all the required modules into bundle.js
$ browserify main.js -o bundle.js
Create create a file called 'test.html' with a single script tag as below, then open it in a web browser and check the output in the 'Web Console'
<script src="bundle.js"></script>
processing.js
WithCreate a new file on your desktop called 'test.html' and download the latest rita.js from here, add the following lines, save and drag it into a browser:
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.4.8/processing.min.js"></script>
<script src="./rita.min.js"></script>
<script type="text/processing" data-processing-target="processing-canvas">
void setup() {
size(200,200);
background(50);
textSize(20);
noStroke();
String words = RiTa.tokenize("The elephant took a bite!");
for (int i=0; i < words.length; i++) {
text(words[i], 50, 50 + i*20);
}
}
</script>
<canvas id="processing-canvas"> </canvas>
</html>
Can I contribute?
Please! We are looking for more coders to help out... Just press Fork at the top of this github page and get started, or follow the instructions below...
Development Setup
-
Download and install git, npm, and gulp. If you have them already, move on to step #2.
a. You can find a version of git for your OS here
b. The easiest way to install npm is to install node.js
c. You can install gulp via npm as follows:$ npm install -g gulp
-
Fork and clone this library.
a. First, login to github and fork the project
b. Then, from a terminal/shell:$ git clone https://github.com/dhowe/RiTaJS.git
-
Now navigate into the project folder and install dependencies via npm.
$ cd RiTaJS && npm install
-
To create the library from src, use gulp.
$ gulp build
-
Run the tests with gulp.
$ gulp test
-
Work on an existing issue, then submit a pull request...