<commit_before># [g9.js](http://omrelli.ug/g9)

g9 is a javascript library for creating **automatically interactive graphics**.

Give g9 some intial data and a function that takes data and creates a drawing, and it will automatically change your data when you interact with the drawing.


For example, the following code:
```javascript
g9({
	x: 0,
	y: 0
}, function(data, ctx){
	
	ctx.circle(data.x, data.y)
	ctx.circle(data.y, data.x)
	
})
.insertInto('#container')
```
<commit_msg>hi kevin<commit_after># [g9.js](http://omrelli.ug/g9)

g9 is a javascript library for creating **automatically interactive graphics**.

With g9, making an interactive visualization is as easy as making a visualization that isn't. Just write a function which draws shapes based on data, and it will automatically figure out how to manipulate that data when you drag shapes around.


For example, the following code:
```javascript
g9({
	x: 0,
	y: 0
}, function(data, ctx){
	
	ctx.circle(data.x, data.y)
	ctx.circle(data.y, data.x)
	
})
.insertInto('#container')
```

{'fraction_non_alphanumeric': 0.1174785100286533, 'fraction_numerical': 0.013371537726838587, 'mean_word_length': 4.515789473684211, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4452263', 'n_tokens_mistral': 347, 'n_tokens_neox': 321, 'n_words': 130}