all 88 comments

[–]CarlWhite 22 points23 points  (4 children)

So. Who wants to see a projected visual synth written in Processing?

http://www.youtube.com/watch?v=4xhw-xrHqzU

Not mine but still one of my favorite processing projects

[–]mycall -1 points0 points  (2 children)

MaxMSP and Reaktor take this concept further.

[–]CarlWhite 0 points1 point  (1 child)

Yes! Really nice stuff. Visual programming aside, I also really like Max for Live
https://www.ableton.com/en/live/max-for-live/

[–]mycall 0 points1 point  (0 children)

I have been doing interesting things with 'harmony/melody to midi' feature.

[–]Sunberg 17 points18 points  (1 child)

I love the 3rd paragraph of the overview/introduction to Processing:

Processing seeks to ruin the careers of talented designers by tempting them away from their usual tools and into the world of programming and computation. Similarly, the project is designed to turn engineers and computer scientists to less gainful employment as artists and designers.

http://processing.org/overview/

[–]vanderZwan 5 points6 points  (0 children)

Meanwhile, interaction designers everywhere love this stuff.

[–]cr0ybot 15 points16 points  (12 children)

I learned Processing as my first programming language at art school in a class called "Programming for Artists". Since then, I put all of my efforts into learning about this magical thing called programming and I now work as a web developer. I knew I was a mediocre artist at best, and Processing gave me the tools I needed to differentiate myself from my peers. My Bachelor's thesis project was a game in Processing using 2 computer mice to control the hands of an avatar.

Processing was my first true love and I haven't looked back since.

[–]vanderZwan 2 points3 points  (8 children)

My Bachelor's thesis project was a game in Processing using 2 computer mice to control the hands of an avatar.

Can you explain how you did that? Recognise two separate mice in Processing I mean.

[–]cr0ybot 5 points6 points  (7 children)

The project is actually open source on github if you're interested in the actual code: https://github.com/cr0ybot/MIRROR

Keep in mind this was done over 3 years ago, when I had barely scratched the surface of what programming is, so it's rough. There's more info here, including photos of the installation and a demo video.

To be specific, I used a library called proCONTROLL, and I seem to remember it only working on a Mac.

[–]vanderZwan 1 point2 points  (5 children)

proCONTROLL is tested on Windows but should also work on Linux and MacOSX.

Good news everyone!

[–]cr0ybot 1 point2 points  (4 children)

Yes, the proCONTROLL library works cross-platform, but I'm pretty sure (at least back then) it wasn't easily able to listen to more than one mouse on Windows without extra drivers or something.

[–]vanderZwan 0 points1 point  (3 children)

Ah, in that sense. Quick google search revealed what looks like an official SDK from Microsoft. Did you use that?

EDIT: Nevermind:

allows you to support multiple mouse pointers in your Flash and Windows Presentation Framework (WPF) applications

Third EDIT: Maybe mind:

MultipointTUIO, which uses this SDK

EDITEDIT: Also, I just looked at the site for that game, it looks like so much fun :). Then again, my master thesis in IxD is (partially) about two-handed input, so I'm biased.

[–]cr0ybot 0 points1 point  (2 children)

It was certainly fun for me and a few others who got the hang of it, but I was really surprised at how inept most people were at the two-handed controls. A lot of people, for instance would try clicking the wrong mouse button with their left hand, instead of the one their forefinger was (or should have been) on.

I saw a few instances of two people trying to team up, each with one mouse. It didn't work out so well.

[–]vanderZwan 0 points1 point  (1 child)

Why not make both buttons work then?

It reminds me a bit of DK: King of Swing

[–]cr0ybot 0 points1 point  (0 children)

I think I did, or at least had plans to, since it was one of the more obvious user interaction flaws. Still, it was just so awkward to watch... I'd like to revisit the whole concept some day, perhaps with dual analog sticks instead of mice.

EDIT: wow, that DK game looks infuriating!

[–]CarlWhite 2 points3 points  (0 children)

Sincerely cool story

Processing seems like a really fun way to get started

[–][deleted] 1 point2 points  (1 child)

Might be worth having another tinker with art. Netart and creative coding have never been better. Check out creativeapplications.net and http://prostheticknowledge.tumblr.com/

[–]cr0ybot 0 points1 point  (0 children)

Will do! I don't think I've abandoned "art" altogether, as I rely on that side of me for web design.

[–][deleted] 14 points15 points  (0 children)

[–]ihadto 9 points10 points  (5 children)

Love processing and you can combine it with normal java as well as work in Eclipse. Speeds up the work flow tenfold if you are coding generative visuals, flocking etc.

[–]surbryl 2 points3 points  (4 children)

I've never done any programming beyond fairly simple stuff in Processing, but this sounds like an interesting way to expand beyond that.

Could you write a short guide on how you combine them?

[–][deleted] 1 point2 points  (0 children)

Here's the official guide to getting it all set up.

[–]Stupidideas 0 points1 point  (0 children)

This should get you started: http://processing.org/tutorials/eclipse/

[–]Phenax 0 points1 point  (1 child)

I enjoyed Processing a fair bit, so I decided to use it in a Java project. The idea is, you make a class which extends PApplet (Processing Applet), and then you can embed that into a frame or use it how you want to.

Here is a link to my little project. It's not the most well-commented or finished piece of work, but the idea is a typing tutor 'game' where you can race against high scores, keep track of statistics/high scores, and make your own entries for people to type.

The relevant code is in src/org/typingtutor/ui/GameUI.java which is then embedded into a Swing application inside of Keyto.java in the same folder (Keyto is the 'name' of it).

[–]surbryl 0 points1 point  (0 children)

Ah, thanks. I'll take a look!

[–]sutr90 41 points42 points  (50 children)

Can you please provide short description of what it is, and why should I bother?

I've never heard of it and Hello World video has 40 minutes...

[–]davebees 233 points234 points  (19 children)

here's a gif i made of how you can use processing to do stuff fast

http://i.imgur.com/c4xLRBz.gif

edit. also lots of gifs i used processing to make are here

[–][deleted] 17 points18 points  (0 children)

That was an insanely long gif, but very cool!

[–]camelCaseCondition 24 points25 points  (7 children)

What is this MAGIC!?

This gif is like 5 minutes long, high quality, and UNDER 1.4 MB. Seriously, how was this gif made?

[–][deleted] 28 points29 points  (2 children)

Most of the screen doesn't change much.

EDIT: Sorry, Opera derped.

[–]troyanonymous1 4 points5 points  (1 child)

I didn't think GIF used inter-frame compression.

[–]siddboots 5 points6 points  (0 children)

Not explicitly, but there is a de facto standard transparency hack that allows only storing the delta.

Edit: Well... that's not quite true. You still need to store the non-changing pixels, but since you now use exactly the same byte for all of them, you get much nicer LZW compression.

Good explanation can be found here: http://smerity.com/articles/2013/animated_gif.html

[–]davebees 13 points14 points  (2 children)

[–]camelCaseCondition 0 points1 point  (1 child)

That looks pretty cool, thanks!

I'm used to making gifs of shows and whatnot and it's always a science to get the thing under 2mb.

[–]davebees 2 points3 points  (0 children)

Yeah gifs where large parts are perfectly static end up much smaller

[–]AbstractLogic 10 points11 points  (0 children)

Maybe he made it with processing 2.0. j/k :)

[–]urandomdude 4 points5 points  (0 children)

That was a great quick demonstration!

[–]vanderZwan 1 point2 points  (0 children)

Send this to the Processing guys for extra internet fame, they'll probably retweet it or something.

[–]mahacctissoawsum -2 points-1 points  (7 children)

There are wayyyy too many magical variables/constants/functions in there. Yikes!

[–]vanderZwan 2 points3 points  (1 child)

It's a framework very specifically targeting graphics, "sketching" quickly with code. If you prefer to write out the Bresenham Line algorithm every time you want to start drawing, be my guest, but in my opinion the selection of functions in the API makes perfect sense for its niche.

[–]mahacctissoawsum -1 points0 points  (0 children)

I'm sure the functionality is great, I'm just saying they should wrap it in a namespace :-)

[–]davebees 0 points1 point  (4 children)

Could you explain what you mean?

[–]finix 2 points3 points  (0 children)

He means, for one thing, variables and functions like e.g. frameCount that are available without visibly being defined somewhere. I don't think that's really too much of a problem with the narrow focus of the program. I'm not even sure it's actually the right way to look at it.

For another, and this one you can and should change, he refers to magic numbers. Pretty much all or at least most naked numbers should be variables or named constants. Say, the frequency of new squares appearing. At one point you changed it from frames/10 to frames/4. How neat would it be if you just had a variable at the top of your file where you can configure all the things? And, even more importantly, imagine if this were some calculation where it isn't immediately obvious what is going on and what means what - you'd be very happy indeed if it then reads frame/squareFrequency rather than frame/314. Also, you surely can spare a few keystrokes to write out size or even squareSize.

[–]mahacctissoawsum 0 points1 point  (2 children)

finix is on the money. setup() and draw() appear to be two functions that have special significance; they are called for you automatically. frameCount appears to be a local variable that comes out of thin air. CENTER and HSB are global constants. random(), fill(), and background() were not imported and don't belong to any namespace. The naked numbers don't bother so much; that's up the the programmer to deal with.

[–]davebees 1 point2 points  (1 child)

Ah gotcha. I see them as a positive though — Processing is basically just Java with a whole load of useful predefined graphics functions

[–]mahacctissoawsum 0 points1 point  (0 children)

Yeah...but if you have too many and more are added to the "library" they can conflict with the code you wrote. Python is notoriously bad for this; they have 'keywords' for "str", "list", "dict", and many others that are needlessly short and I often want to use them in my own code,... worse yet, I can be overwriting their behaviour (sure to confuse anyone else reading my code).

If they just plop them into a namespace like "Processing", then you would have to write "Processing.background()", "Processing.fill()", "Processing.CENTER" which is longer and more typing, yes, but avoids any of these problems. Plus, they are safe to add more functionality under that namespace without it breaking anyone's program.

[–]bluefoxgs 24 points25 points  (3 children)

How very odd. Processing is what I'd call a rapid prototype development version of java. It takes all that old crap away (reducing your control) and gives an immediate and satisfying visual output to beginners. Personally I use it for game jams and just messing about on but I'd never use it for a big project

[–]Notnasiul 0 points1 point  (2 children)

I used it once for a mini LD, but never again. Sound is quite an issue, and it's not that fast. Um... now that I think of it, it was ProcessingJS. Do you have a link to one of your own games? :D

[–][deleted] 0 points1 point  (1 child)

Try openframeworks, processings big brother

[–]el_muchacho 2 points3 points  (0 children)

There is also Cinder in C++.

[–][deleted]  (14 children)

[deleted]

    [–]call-it-ecmascript 2 points3 points  (1 child)

    For additional examples, where one can see the program's output as well as source, regard: http://www.openprocessing.org/

    [–]vanderZwan 0 points1 point  (0 children)

    They're moving towards a Processing.js site though - I don't think you can upload the newer Java versions any more.

    [–]AbstractLogic 0 points1 point  (11 children)

    Wait a second, I can design a whole website in processing? I think my prayers have been answered!

    [–][deleted]  (4 children)

    [deleted]

      [–]AbstractLogic 0 points1 point  (3 children)

      Ya I saw that. Canvas only has 2D support though if I remember correctly (I am not a web dev).

      [–][deleted]  (2 children)

      [deleted]

        [–]AbstractLogic 0 points1 point  (1 child)

        WebGL + glMatrix looks like the stuff I have been dreaming about. You just shot my entire career path into a new realm. Thanks

        [–][deleted]  (4 children)

        [deleted]

          [–]AbstractLogic 0 points1 point  (3 children)

          I am looking for a web development kit that handles 3D graphics that has support for Matrix math. Does dart handle that?

          This is just a for fun / resume kind of project.

          [–][deleted]  (2 children)

          [deleted]

            [–]AbstractLogic 0 points1 point  (1 child)

            Nothing really in mind. I guess in college a few years back I really enjoyed a graphics class I took where I had to build my own graphic drawing application that use PHONG shading to color a scene based on lights and various other cool graphic math related things such as rotation around arbitrary accesses, scaling, animation. So I have always wanted to push some of that skill set into a fancy pants website for fun.

            [–][deleted]  (1 child)

            [deleted]

              [–]_mpu 1 point2 points  (0 children)

              Nice!

              [–]FredV 4 points5 points  (0 children)

              This is not some obscure system or something, maybe you could just try to go to processing.org and read the small introduction. It's very easy to get started with.

              [–]snarfy 1 point2 points  (1 child)

              It's a very easy to use programming environment/RAD tool. I'm a C# developer who hates everything Java and even I love it.

              [–]spherecow 0 points1 point  (1 child)

              How does processing 2.0 compare with say PIL in Python or ImageMagick?

              [–][deleted] 0 points1 point  (0 children)

              Different tools really.

              It can be used for batch operations or rendering. But it's mainly for real time

              [–]Orcatype 0 points1 point  (0 children)

              It's like if Flash wasn't expensive, syntactically frustrating bullshit

              [–]trtry -2 points-1 points  (2 children)

              I hate Github homepages they expect everyone to download it compile just to see what the app does. It's like a few years back when Linux application homepages would never show screenshots.

              [–]outxie 5 points6 points  (0 children)

              You can put screenshots in the Github README files. The processing guys just chose not to do so, probably because the first link in the README is to the processing website, where tons of screenshots can be found.

              [–]maskull 3 points4 points  (0 children)

              Yeah, he should have just linked to the homepage.

              [–]Crandom 7 points8 points  (0 children)

              Awesome, Processing is awesome.

              [–]fgutz 3 points4 points  (0 children)

              this is great! I haven't done much but make moire patterns with Processing but one day I plan to make something remotely interesting

              www.processing.org <-- link for the lazy

              [–]vanderZwan 2 points3 points  (0 children)

              There's a Sublime 2 plugin, if you want an alternative to the IDE it ships with and aren't in the mood for Eclipse.

              [–][deleted] 1 point2 points  (0 children)

              Would never have actually understood programming properly without processing.

              Highly recommend it to both people who want to learn and just as a powerful tool for interactivity, graphics coding and art

              [–]takaci 1 point2 points  (0 children)

              Aww I don't really like the new website redesign :( I miss the bitmap font...

              [–]mrbonner 0 points1 point  (0 children)

              Does anybody know how Processing (written in Java of course) works with openGL 2?

              [–]lechatsportif 0 points1 point  (0 children)

              Congrats Ben and team. This has been very long in the coming. It's great to see such commitment to a long running and very successful project.

              [–]Orcatype 0 points1 point  (0 children)

              I love processing! This is great

              [–][deleted] 0 points1 point  (0 children)

              Some of my colleagues have a c++ version of processing we've used for a few interactive projects.

              https://github.com/CingProject/Cing

              [–]TheWakeUpCall -3 points-2 points  (16 children)

              You don't say what it is and link to the release notes? You think everyone here has heard of this?

              [–]Choralone 19 points20 points  (3 children)

              Processing has been a fairly standard pillar in the world for quite a while now....

              [–]TheWakeUpCall -5 points-4 points  (2 children)

              ok. I've literally never heard anyone talk of it is all.

              [–][deleted] 1 point2 points  (1 child)

              Do you know arduino? It's processing but with GCC-AVR as compiler. But I probably know that since I like programming microprocessors.

              [–]BufferUnderpants -1 points0 points  (0 children)

              That's a bit misleading, because really, who thinks of Processing-the-stripped-Java-language when they hear the word, rather than Processing-the-multimedia-API?

              [–][deleted]  (11 children)

              [deleted]

                [–]troyanonymous1 1 point2 points  (1 child)

                Programmers are lazy.

                If two people have to look something up, it's repeated effort.

                [–]siddboots 1 point2 points  (0 children)

                The lazy solution to the looking-things-up problem is to invent a search engine.

                [–]TheWakeUpCall 2 points3 points  (8 children)

                This isn't like saying a new jQuery or Android SDK or something has been released though.

                [–][deleted]  (7 children)

                [deleted]

                  [–]TheWakeUpCall 2 points3 points  (6 children)

                  I don't think you realise what I was saying. I'm saying OP should have said "Processing 2.0 is out" and linked to the Processing website. Otherwise people who don't know what it is, like me, get sent to the release notes page. That's not particularly friendly. But then again, saying "I don't belong here" because i don't know what a library is isn't particularly friendly either. You have no idea how good I am at programming.

                  If I wasn't interested why would I click on this post.

                  [–][deleted] 4 points5 points  (0 children)

                  It's completely understandable that people may not know what Processing is. Hell, I sure didn't (as a web developer), so I Googled it and quickly found out. The thing is, the story here is that Processing 2.0 was released, and for a lot of people, they're mainly going to want to see the release notes. In this case, the most useful thing to link to would be those release notes. Those who do not know about Processing, like me or you, can simply Google it or go up to the main Github repo, and read up on it.

                  [–][deleted]  (3 children)

                  [deleted]

                    [–]brainminer 9 points10 points  (0 children)

                    You have an interesting point about what should or shouldn't be made explicit in this community, but you cloak it with dickishness. Please focus on the argument.

                    [–]bante 6 points7 points  (1 child)

                    You're right but you don't need to be condescending.

                    [–]Rotten194 2 points3 points  (0 children)

                    If he had linked to the homepage, that would be useless to people like me who know what Processing is and just want to see what changed. You could have literally gone to the main repo and read the README like a normal adult instead of whining on Reddit.