Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411278 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 01:25:38 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytestingPaintf***
Pages: [1] 2 3 4
Print
Author Topic: Paintf***  (Read 23937 times)
whitespace
Level 0
**


View Profile
« 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:
Code:
*[[e*s*]*[s*]ee*]
Code:
*[[[[nnn**n]w*]s*]*[w*n]*]
Code:
*[[[e*]*[es*]*[s*]*[ws*]*[w*]
*[wn*]*[n*]*[ne*]nw*][e]*]
Code:
*[[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  Sad
« Last Edit: November 22, 2008, 06:41:58 AM by whitespace » Logged
kyn
Level 10
*****


View Profile WWW
« 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
Level 10
*****



View Profile WWW
« Reply #2 on: November 23, 2008, 07:00:34 PM »

This is great! Reminds me of both Logo and Conway's game of life. Smiley 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
Man
Level 10
*


/Farbs


View Profile WWW
« 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
Man
Level 10
*


/Farbs


View Profile WWW
« 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
Level 0
**


View Profile
« 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. Smiley 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
Level 10
*****


POLICEDANCECLUB


View Profile
« 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
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« 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
Level 9
****



View Profile WWW
« Reply #9 on: November 24, 2008, 12:29:10 AM »

Very nice job! Smiley

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. Tired
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
Level 5
*****


Bling bling


View Profile WWW
« 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
Man
Level 10
*


/Farbs


View Profile WWW
« 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 Grin
Logged
whitespace
Level 0
**


View Profile
« Reply #12 on: November 24, 2008, 08:18:07 AM »

Wow you guys are really amazing!!!!!!  Grin Grin Grin


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

Quote
Any suggestions on improving the language?
threading  Evil

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
Level 3
***



View Profile
« Reply #14 on: November 24, 2008, 10:06:43 AM »

Code:
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
Level 10
*****



View Profile WWW
« 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
Level 0
**


View Profile
« 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.
Quote
Quote
Any suggestions on improving the language?
threading  Evil

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?

Code:
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  Roll Eyes
Logged
whitespace
Level 0
**


View Profile
« 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  Roll Eyes
Ah, I see.
I let it run through my mind for a while. Smiley

also:
Code:
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
Level 3
***



View Profile
« 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
Pages: [1] 2 3 4
Print
Jump to:  

Theme orange-lt created by panic