background preloader

Web-Drawing Throwdown: Paper.js Vs. Processing.js Vs. Raphael

Web-Drawing Throwdown: Paper.js Vs. Processing.js Vs. Raphael
Advertisement Before drawing anything in a browser, ask yourself three questions: Do you need to support older browsers?If the answer is yes, then your only choice is Raphaël. It handles browsers all the way back to IE 7 and Firefox 3. Paper.js, Processing.js and Raphaël are the leading libraries for drawing on the Web right now. Choosing the right framework will determine the success of your project. All of the code in this article is open source and can be run on the demo page that accompanies this article. Overview It’s all JavaScript once the page runs, but the frameworks take different paths to get there. PaperScript is a JavaScript extension that makes it possible to write scripts that don’t pollute the global namespace. Processing.js is based on a framework named Processing, which runs in the Java Virtual Machine. Using all three libraries is easy if you have some familiarity with JavaScript. Getting Started Start by importing each library. Setting Up Paper.js Setting Up Processing.js

Tangle: a JavaScript library for reactive documents Tangle is a JavaScript library for creating reactive documents. Your readers can interactively explore possibilities, play with parameters, and see the document update immediately. Tangle is super-simple and easy to learn. This is a simple reactive document. When you eat 3 drag cookies, you consume 150 calories. This is the HTML for that example. When you eat <span data-var="cookies" class="TKAdjustableNumber"> cookies</span>, you consume <span data-var="calories"> calories</span>. And this is the JavaScript. Write your document with HTML and CSS, as you normally would. Try out some examples. Proposition 21: Vehicle License Fee for State Parks The way it is now: California has 278 state parks, including state beaches and historic parks. What Prop 21 would do: Proposes to charge car owners an extra $18 on their annual registration bill, to go into the state park fund. Analysis: Suppose that an extra $18 was charged to 100 % of California taxpayersvehicle registrations. Fc = 2 KHz Q = 0.8 Unstable

IP Address Geolocation to Identify Website Visitor's Geographical Location Raphaël—JavaScript Library 13 Awesome Javascript Libraries for HTML5 The growing popularity of HTML5 has created a boom in the development of JavaScript libraries that can integrate with HTML5. These libraries are easy to implement and can instantly provide a whole new level of power and control over an existing HTML 5 application. We put together a list of 13 awesome, light JS libraries to help you get your next HTML 5 application off and running. CreateJS is actually a suite of four different JavaScript libraries. WYSIHTML5 Is a lightweight rich text editor that can generate valid and semantic HTML5 markup. Fixie is a great way to add in the Latin filler text based on the interpreted HTML5 tag used. Sisyphus uses local storage to save your existing form input in the event of a browser crash. Kinetic JS aims to make content creation and manipulation in the canvas a much easier and faster experience. Paperfold uses CSS3 and JavaScript to create a neat visual effect of making divs appear like they are folding like paper. About the author Blog

Tutorial: Controlling Processing.js with jQuery UI « Joseph Harrington Years ago when I was first learning to code, I stumbled upon Processing and we quickly became great friends. As it often goes though, the years went by and I started hanging out with bigger and more dangerous languages, and Processing and I drifted apart. Every so often I would think back on the good times we had and wonder what he was up to. But recently we bumped into each other on the street! Well, not exactly – but lately I’ve been catching up with Processing’s web-friendly doppelgänger, Processing.js. If the original Java-based language ever had any shortcomings, it was that sharing your program (or sketch, as it’s referred to in the Processing world) meant exporting it as a Java applet and embedding it in a webpage. Gladly those days are over with the Javascript- and HTML5-based port of the original language. “But wait!” And the answer is yes. Check out this demo in which I may or may not have gone a bit overboard with sliders… Anyway, enough gushing. Let’s start with the sketch.

Preview – Impressionist | A visual editor for impress.js at Harish Sivaramakrishnan Update : More bug fixes, more stability~ Alpha 3 is now hosted. Do give it a spin. Please note that this is still early and has some distance to go before it can be called stable. Please do log issues on github. Webkit only. Update: Impressionist is now on github and will be developed openly. I am a big fan of impress.js framework. )The last few presentations I made were all on impress.js and I was quite blown away by the visually rich stuff that I could create with it. Finally, I made up my mind. Here is the first look of what this tool looks like (no, its not ready for primetime consumption, yet – hence I have right now is a screencast.) I am really looking forward to some help from folks to help me test this out. Note: Some of the bugs show up in the video itself and I am working on fixing them.

Designing for the Web The web professional's online magazine of choice. In: Columns > Design in Theory and Practice By Joshua David McClurg-Genevese Published on January 9, 2006 In the last two articles we looked at the basic tenets of the design practice, the principles and elements of design. We stepped back a bit from any one medium to investigate the more universal concepts of design in general, and how these axioms are often derivative of other art forms. I often get asked what size I design at and whether or not I use fixed-width or percentage-based designs, and why. Now it is time to turn our attention to the Web. In my opinion, the vast majority of constraints in a Web-based environment are brought about because of the limits of human interaction with technology. ResolutionDesigning for browsersWeb-safe colorGraphics compressionText Resolution “Resolution” is used in a variety of ways to mean a variety of different things. Screen Resolution Screen resolution is a bit of a misnomer, in my opinion. Text

Getting Started with Processing.js Recently John Resig released Processing.js. Its a pretty interesting project, which allows Processing code to be run in the browser. This article is a quick look at why it is worth checking out, and ends with a tutorial explaining how to get started. Why Does Processing.js Matter? I see (at least1) two reasons why translating Processing.js is important. The first is that Processing's philosophy and syntax have never felt like a good match. Downloads Processing.js is pretty easy to get up and running with, but first we have to download a few files. First, you will need to grab a copy of processing.js. Setting Up Now that we have the files we need, we'll need to throw together a hasty development environment. Next, copy or move the processing.js file you downloaded into the directory you just created. Third, in that same folder, create an empty file called init.js. Now all we have left is to create is a simple html file. Using Processing.js So, lets put together the html template. Wrapup

EaselJS | A Javascript library that makes working with the HTML5 Canvas element easy. Recent Updates Follow @CreateJS November 2014 Updates in preparation for next release (coming soon).New class model, with big performance increases October 2014 Lots of bug fixes and pull requests.New 'Extras' folder in GitHub with useful tools and classes July 2014 Major overhaul of Graphics to include a useful command pattern, and a big performance increase.Added Graphics.store() / unstore() The Story Why we built EaselJS About EaselJS EaselJS provides straight forward solutions for working with rich graphics and interactivity with HTML5 Canvas. Featured Projects Community Show & Tell. Ion Drift A port of the Flash game Ion Drift, b10b was able to build a CreateJS version in less than a day that hit target framerates on even the lowest devices, and outperformed ports to other libraries. By b10b b10b

Loosely Coupled, Reusable UI Components in Backbone.js | Azavea Labs This article assumes a fairly good understanding of the Backbone.js MV* library. There is a lot of good material on the web for learning Backbone, including the Backbone home page at backbonejs.org. Intro One of the things that differentiates Backbone from other frameworks is that it is extremely lightweight. A typical pattern, tight view and model binding: In a recent application, I added UI to modify the opacity and color ramp palette in a map raster layer. I am wary of trivial Backbone examples, but a simplified example is an opacity control in some sort of image editing app: When the user slides the slider in the opacity view, it sets the opacity attribute of the image model. The problem with this structure is that what is basically a generic control, used for controlling the level of any numerical attribute, has been tightly couple to an image model, where it only controls opacity. The implementation of this LevelControlView could look like this: The Solution So what you end up with is

untitled Source code: Documentation: Introduction Constructive Solid Geometry (CSG) is a modeling technique that uses Boolean operations like union and intersection to combine 3D solids. This library implements CSG operations on meshes elegantly and concisely using BSP trees, and is meant to serve as an easily understandable implementation of the algorithm. All edge cases involving overlapping coplanar polygons in both solids are correctly handled. Example usage: Operations This library provides three CSG operations: union, subtract, and intersect. The solids a and b above were generated with the following code: Combined CSG Example Below is a solid constructed from a combination of operations: The solids above were generated with the following code: Try it! Edit the code below to construct your own solids.

Easy Slider 1.7 I got a lot of emails and feedback about my easySlider plugin, thank you all for that. However, I have to apologize to all of you who sent emails asking for a little help with implementation or small bug fixes. I simply don’t have the time to answer all of your emails. I wish I do. What I am presenting you today is an easySlider update with 2 new features. When going through your feedback I noticed 2 feature suggestions appearing very often: numeric navigation (as an alternative to next/previous buttons)continuous scroll instead of jumping to the first (or last) slide So, that’s what I implemented in this new version. Also, your suggestion about continuous scroll made most sense, it is kind of annoying when you have many slides and have to wait for all of them to scroll back to the first one. Download easySlider 1.7 I suggest that you read about previous versions in order to understand better how it works: easySlider version 1.0 easySlider version 1.5 Options prevId prevText nextId nextText speed

Related: