#generativo
// Una frase, un cielo. La stessa frase dà sempre lo stesso cielo.
function cielo(frase, w = 800, h = 500) {
let acc = 0;
const dado = (n) => {
acc = (acc * 1103515245 + n * 12345 + 7) % 2147483648;
return acc / 2147483648;
};
for (con
Costellazioni da una frase
// Telaio a quattro licci. L'armatura decide quale filo passa sopra:
// cambiando la sequenza cambia il tessuto, esattamente come al telaio vero.
function tessuto(fili = 48, passate = 48, armatura = [0, 1, 2, 3], cell = 10) {
const ordito = ["#2d2a32",
Telaio
// Pianta di una città che non esiste. Restituisce SVG come stringa.
const rnd = (s => () => (s = Math.imul(s ^ (s >>> 15), s | 1), ((s ^= s + Math.imul(s ^ (s >>> 7), s | 61)) >>> 0) / 2 ** 32))(20261021);
function citta(lato = 600) {
const c = lato
Pianta di una città che non esiste
// Giardino generativo — nessuna libreria, solo canvas.
// Lo stesso seme dà sempre la stessa pianta. Semi diversi, piante diverse.
function seme(testo) {
let h = 2166136261 >>> 0;
for (const c of testo) { h ^= c.charCodeAt(0); h = Math.imul(h, 16777
Giardino generativo