Rick Barraza

Rick Barraza rbarraza Form Follows Fiction

Niner since 2012

I'm the Design Technologist in the Coding 4 Fun group here at Microsoft. I've been working, playing and public speaking at the intersection of Design and Emerging Technology for over a decade. I'm a designer at heart who gets inspired by the impossible and uses tech to make it real. I also love a great story, obscure pattern or impossible connection - so hit me up anytime with your next crazy idea or fringe science project. I'd love to hear about it!



  • Drawing with Emitters


    First - awesome manatee pic. You're already a winner. Second, that sounds really cool! If you ever put those up publicly, let me know. I'd love to check them out and help spread the word. Nice.

  • Jelly Blobs, Easing and Elastic

    Hmm, this is a great thing to explore and mess around with. Off the top of my head-

    Since the Blobs are centering around the mouse position, I would calculate the distance of each blob [  Math.sqrt( (mouse.x - blob.x)*(mouse.x - blob.x) + (mouse.y - blob.y)*(mouse.y - blob.y) ) ] and use that scale the fillSize ( which is currently hard coded to 160, with the stroke aways being 20 more ).

    So if any given ball is zero pixels away from the Pointer (it's right at the middle), it is at full scale ( 1.0*160.0 ) but as the distance increases, that scale goes down ( with some lower limit as your minimum acceptable value ).

    That's what I would try first, but I'm sure there are other ways of doing it. Let me know if you try it out and what works for you! 

  • Trigonometry for Designers (Don't Panic!)

    LOL. Never even noticed that. I DO always say "width and heigh(th)". Totally understand how that could be annoying. Like hearing people say "nuculer", right? I'll try and work on it Wink

  • Particles, Classes and Color

    Array of Classes is the name of my next band.

  • Drawing with Emitters

    Thanks for the code, zshift! I've never thought of doing it that way, but will definitely keep it in mind as well. Looks clean.
  • Setting up your Windows 8 environment

    Hey Tony - Sorry about that. It looks like they combined the phone and C# viewer projects into one download, so the sketchbook solution lost a bit of its original simplicity. Here's how to do it.

    Download the full solution here : http://processingjs.codeplex.com/SourceControl/changeset/view/79096

    The DEFAULT project in the solution should be the original Sketchbook project I used in all the training ( ProcessingJSViewerWinJS ). The file and folder structure looks exactly the same as it would if you created a fresh project in Visual Studio using a Windows 8 JavaScript store app template (empty).

    Inside the JS folder ( where you find default.js ), you will find a modified version of processing.js ( called processing_rt.js ). If you were starting this from scratch, you could have just downloaded processing.js from the official site and dropped it in too. However, this version has some tweaks for handling the MSPointer touch event for Surface, Phone, etc.

    Off the main directory, you'll see a file called sketch.pde. "PDE" is the common extension for standard ( as in more Java than JavaScript based ) Processing sketches. We decided to give a simple particle sketch as default, so you can see how the update, setup, draw function work. Feel free to tweak, gut or just wholesale replace that sketch.pde with whatever Processing code you want.

    If you want to start with a fresh sketch, just create your own PDE file ( say tonysketch.pde ) in the same place.

    Inside default.html, you'll only find a full screen Canvas called "canvasRoot". Like all JavaScript template projects from VS2012, default.html automatically calls default.js ( found in the JS folder ).

    Inside default.js, on its app.onactivated handler ( which also comes automatically from all JS templates ), you'll see how we create a reference to the canvas, load up the sketch.pde file from the directory, and then pass it to the Processing object we've created.

    If you make your own sketch, just swap out the names to the .pde file and you'll be good to go. Have fun! Let me know if you end up making something awesome.

    Thanks for testing it out!



  • A Deeper Dive into the Page Flip in Canvas/HTML5

    @Leon @Sadatay That's right. Actually, it IS the Samsung Slates they gave out at Build. I didn't join MSFT till this January, so I got to get the free swag at BUILD =)

    Another lesser known feature of those tablets is if you drop Windows 8 on it, you can shoot out stereoscopic to a 3D television through the HDMI port if you know what you're doing and code it out in the new DirectX 11.1  

    I'm heads down on a ton of Metro stuff right now, but I want to put up a show just on stereoscopic 3D from DirectX 11.1 and C++ on the new Windows 8 soon ( which means after TechEd Europe, so more "soonish" )

    Thanks guys for the great support and comments. Much appreciated.

  • TWC9: New Team Members, Win8, C++, SQL 2012, Cloud Numerics

    Hi Rod, Sorry for the delay. I was heads down in code and just got out. I said "New Developer" but the phrase that was introduced was actually "modern developer". I think that one is more accurate, but still very amorphous right now. At the core, would be the "traditional" seasoned developer, tackling the big, hairy enterprise level projects and master weilder of all things COM or .NET. That's really the foundation. But we're entering a time where building on top of that are a vast army of web developers, Javascript masters, interaction developers, designers who code, scripters, etc. In Windows 8, we're seeing an introductory level playing field between C++, Javascript and C#. Canvas and HTML5 are blowing up, and DirectX 11.1 becoming more accessible through the OS is going to also create a lot of great opportunities for everyone up and down the stack. From Designers who code all the way down to enterprise dev super stars. From Phone to Hardware to Cloud, from browser based scripts all the way down to running native on the metal and GPU. I think of "modern developer" as being representitive of this entire spectrum, and that's how I was using it. A sign of the massive opportunities coming into the Microsoft ecosystem. Hope that helps. - rk