whitespace
|
|
« on: November 22, 2008, 06:28:50 AM » |
|
Hi! This is a sketch for an esoteric language that produces generative art. Basically it's smallfuck ( http://esolangs.org/wiki/Smallfuck), a deriative from brainfuck, only now with a 2d-grid. commands: n -moves pointer north s -moves pointer south e -moves pointer east w -moves pointer west * -flip current cell (black->white, white->black) [ -jump past matching ] if cell under pointer is black ] -jump back to matching [ Other characters than commands, whitespace and newlines are ignored. grid is 40x40, and it wrapping -> moving east at 39,7 will move into 0,7 moving north at 23,0 -> 23,39. you can get the player/toy/IDE here: http://willhostforfood.com/files3/7766096/pain.rar
(1.4MB) Allthough I have big interest in esolangs and genart, I'm not a real mathematician. I made some sampleprograms for learning loops/if-construction though. copy/paste in the white space of the player and press run: *[[[[nnn**n]w*]s*]*[w*n]*] *[[[e*]*[es*]*[s*]*[ws*]*[w*] *[wn*]*[n*]*[ne*]nw*][e]*] *[[eeee*eee*ee*]ssss*]*[[[[ssss*sss*ss*]wwww*]w] But since the languages brainfuck and smallfuck are considered to be turing-complete( http://esolangs.org/wiki/Turing-complete) I dare to believe much more interesting things are possible with this thing. I like to create a extreme simplified language to create art, probably I will add some features like color though. I hope someone sees the beauty in it
|
|
« Last Edit: November 22, 2008, 06:41:58 AM by whitespace »
|
Logged
|
|
|
|
kyn
|
|
« Reply #1 on: November 22, 2008, 07:38:57 AM » |
|
Maybe you should already include some template codes in the program itself (maybe those ones you had in your post), this is a little confusing at first glance, I had no idea what I was supposed to do
|
|
|
Logged
|
|
|
|
agj
|
|
« Reply #2 on: November 23, 2008, 07:00:34 PM » |
|
This is great! Reminds me of both Logo and Conway's game of life. There should be a way to consider the possibility of different canvas sizes, though, right? Without altering the final result of the program, I mean.
|
|
|
Logged
|
|
|
|
Farbs
|
|
« Reply #3 on: November 23, 2008, 07:28:53 PM » |
|
This is a cool idea. It'd be awesome to see it on its own page, with clipboard linking like TIGerPaint. Then people could share their programs much more easily. To implement this you'd need to do the following: * Optionally load a program from the url (eg: http://www.website.com/pain.html?*[[e*]s*]) * add a "Copy link to clipboard" button that creates a link for the current program (as above) and copies it into the clipboard, ready for a forum post EDIT: *[*e*[ee*]*s*] EDITEDIT: *[[e*]*w*w[s*]*n*n[w*]*e*e[n*]*s*s] EDITEDITEDIT: *[[e*]*w[s*]*n[w*]*e[n*]*s]
|
|
« Last Edit: November 24, 2008, 02:42:57 AM by Farbs »
|
Logged
|
|
|
|
Farbs
|
|
« Reply #4 on: November 23, 2008, 08:37:52 PM » |
|
PONG
*n*[e*s*n]*s* sssssss *s*s*s*s* nnnn w nnnnnnn nnnnnnn *n*n*n*n* ee sssssss sssssss ssssss * [ [*ne*]*sw* [*se*]*nw* [*sw*]*ne* [*nw*]*se* ]
|
|
|
Logged
|
|
|
|
whitespace
|
|
« Reply #5 on: November 23, 2008, 09:18:41 PM » |
|
Thanks for your interest! That's great. Maybe you should already include some template codes in the program itself (maybe those ones you had in your post), this is a little confusing at first glance, I had no idea what I was supposed to do
I will try to make tutorial when I come home tonight or tommorow, but it isn't really that hard if you just take your time. This is great! Reminds me of both Logo and Conway's game of life. There should be a way to consider the possibility of different canvas sizes, though, right? Without altering the final result of the program, I mean. Thanks. SUre there can be different canvas-sizes in the end, just like different framespeeds. This is a cool idea. It'd be awesome to see it on its own page, with clipboard linking like TIGerPaint. Then people could share their programs much more easily. To implement this you'd need to do the following: * Optionally load a program from the url (eg: http://www.website.com/pain.html?*[[e*]s*]) * add a "Copy link to clipboard" button that creates a link for the current program (as above) and copies it into the clipboard, ready for a forum post EDIT: *[*e*[ee*]*s*] *[[e*]*w*w[s*]*n*n[w*]*e*e[n*]*s*s] *[[e*]*w[s*]*n[w*]*e[n*]*s] Yeah, it's already in flash so that makes integrating in a website very easy. I like your animations very much, I'm happy someone tried to understand it, that's cool.
|
|
|
Logged
|
|
|
|
policedanceclub
|
|
« Reply #6 on: November 23, 2008, 09:48:41 PM » |
|
Oh man, this is cool!
*[e*eee*ww*ww*ww*s*s*s*s*w*w*w*www*ww*s*s*s*]
|
|
|
Logged
|
|
|
|
Hideous
|
|
« Reply #7 on: November 23, 2008, 11:10:16 PM » |
|
I tried making an isometric grid.
ssssssseeeeee*[s*e*e*s*e*e*s*e*e*s*e*e*s*e*e*s*e*e*]n*[n*e*e*]*[s*e*e*]*[n*e*e*]
|
|
|
Logged
|
|
|
|
Decipher
Guest
|
|
« Reply #8 on: November 23, 2008, 11:19:06 PM » |
|
Wow a great idea! I'm so in love with this. I'll give it a proper try whenever I'll get out of this stupid establishment, namely the school.
|
|
|
Logged
|
|
|
|
Noyb
|
|
« Reply #9 on: November 24, 2008, 12:29:10 AM » |
|
Very nice job! Would it be possible to add a way to stop animating apart from clearing the text and restarting? 45 degree lines: *[ne*]*[se*]*[e*]*[s*]*[se*]* spiral: *[[e*]*w[s*]*n[w*]*e[n*]*s] D'oh. Repeat. Farbs had three separate ones, not a three line checkerboard one. steady pulse: sssssssssssssssssss*[[s*s*s*e*e*n*n*n*n*n*n*e*e*s*s*s*]*] AC?: sssssssssssssssssss*[[s*s*s*e*e*e*n*n*n*n*n*n*e*e*e*s*s*s*]*] Marquee:*[[ee*]ww[ss*]nn[ww*]ee[nn*]ss[*ee]ss[*ss]ww[*ww]nn[*nn]*] That pong one is amazing, Farbs.
|
|
« Last Edit: November 24, 2008, 01:50:03 AM by Noyb »
|
Logged
|
|
|
|
jeb
|
|
« Reply #10 on: November 24, 2008, 01:00:53 AM » |
|
I call this one "illuminati":
eeeeeeeeeeeeeeeeeee*s*[n[sw*n]ss*n[se*n]ss*]
|
|
|
Logged
|
|
|
|
Farbs
|
|
« Reply #11 on: November 24, 2008, 03:05:58 AM » |
|
Would it be possible to add a way to stop animating apart from clearing the text and restarting?
You can write your main loop to terminate, but it's a pain in the arse. See: ee*[[*ww*eee*]*wwss*[*nn*sss*]*nnww*[*ee*www*]*eenn*[*ss*nnn*]*ssee*]*ww* I'm glad you liked pong
|
|
|
Logged
|
|
|
|
whitespace
|
|
« Reply #12 on: November 24, 2008, 08:18:07 AM » |
|
Wow you guys are really amazing!!!!!! Any suggestions on improving the language? *I think about adding a colorpalette of, let's say, 8 colors, which you can cycle through by using the plus/minus-characters (+/-). *And adding functions like in procedural brainfuck: http://esolangs.org/wiki/Pbrain*maybe single numbers would (0-9) work as speedsetters for the animation. It would improve language as functional language, but I'm not quite sure if I want that.
|
|
« Last Edit: November 24, 2008, 08:22:23 AM by whitespace »
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #13 on: November 24, 2008, 09:24:27 AM » |
|
great idea! 'tis a lot of fun. thing: *[[w*ee*]ee*n*[se*]*] other thing: *[[w*e*]e*n*[s*]*] thing that generates a grid, but ends up as something else: *[[s*]e*[s*]*] (slowly) draws a grid, then erases it again (and repeats, forever): *[[s*]w*[ne*]*] ALSO: *[] seems to crash it Any suggestions on improving the language? threading Or: have the algorithm work for any 2d mesh with rectangular facces: that would definitely be cool, and totally not require any changes to the language. Also: somthing to consider would be to make an iphone version: the input is so basic that it would be really good for a touch-screen interface. I'm pretty sure it'd be quite popular.
|
|
« Last Edit: November 24, 2008, 09:46:41 AM by increpare »
|
Logged
|
|
|
|
mjau
|
|
« Reply #14 on: November 24, 2008, 10:06:43 AM » |
|
sssssssssssssss sseeeeeeee *s*s*s*s*e*e*n*n*sse*e*n*n*n*n*ee *s*s*s*s*nne*e*e*enn*s*s*s*s*ee eeeeee*wwwwww* [n*n*n*n*e*e*e*e*ssw*w*w*ss*e*e*e*ee] *nn*n*n* eeeeeeeenn *[e*]*ssssssss *[e*]*nnnnnnn*[ [*[s]e[w*e*]ws*]*ne* [*[n]e[w*e*]wn*]*se*]
|
|
|
Logged
|
|
|
|
Alevice
|
|
« Reply #15 on: November 24, 2008, 11:10:12 AM » |
|
Whoah at farbs' pong a mjau's whee.
Also, I like the idea for those new features, excludijng perhaps stored procedures. They shound great and all, but I fear they would be a pain in the ass to deal with.
|
|
|
Logged
|
|
|
|
whitespace
|
|
« Reply #16 on: November 24, 2008, 12:02:27 PM » |
|
ALSO: *[] seems to crash it
Nice! I could warn users for this eventually when they put it in their code though. Any suggestions on improving the language? threading Or: have the algorithm work for any 2d mesh with rectangular facces: that would definitely be cool, and totally not require any changes to the language. Forgive my sillyness, but with threading do you mean excuting multiple 'programs' at the same time? sssssssssssssss sseeeeeeee *s*s*s*s*e*e*n*n*sse*e*n*n*n*n*ee *s*s*s*s*nne*e*e*enn*s*s*s*s*ee eeeeee*wwwwww* [n*n*n*n*e*e*e*e*ssw*w*w*ss*e*e*e*ee] *nn*n*n* eeeeeeeenn *[e*]*ssssssss *[e*]*nnnnnnn*[ [*[s]e[w*e*]ws*]*ne* [*[n]e[w*e*]wn*]*se*]
Wow!, I have to come up something cool myself now.
|
|
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #17 on: November 24, 2008, 12:16:49 PM » |
|
Forgive my sillyness, but with threading do you mean excuting multiple 'programs' at the same time?
A command to split the 'machine head' in two. For instance, say something like having the symbol # splits the program in two: one, feeding into it that the current square is white, and one, telling it that the current square is black. Not sure how much use it would be, but it sounded like it would be good to say at the time
|
|
|
Logged
|
|
|
|
whitespace
|
|
« Reply #18 on: November 24, 2008, 12:20:13 PM » |
|
Forgive my sillyness, but with threading do you mean excuting multiple 'programs' at the same time?
A command to split the 'machine head' in two. For instance, say something like having the symbol # splits the program in two: one, feeding into it that the current square is white, and one, telling it that the current square is black. Not sure how much use it would be, but it sounded like it would be good to say at the time Ah, I see. I let it run through my mind for a while. also: eeeeeessssss*[[nn*wss] nn*w*s*see [ww*see] ww*s*e*enn [ss*enn] ss*e*n*nww [ee*nww] ee*n*w* [w*]* ]
|
|
|
Logged
|
|
|
|
Kneecaps
|
|
« Reply #19 on: November 24, 2008, 01:11:47 PM » |
|
This is awesome. The only thing else I'd like to see is a customizable grid size. I kinda suck at it compared to the other people in this topic, but here's a thingy I made:
*[[[s*e*n*e*]*s][w*s*e*]n]
|
|
|
Logged
|
|
|
|
|