WebGL Lesson 1 – A triangle and a square << Lesson 0Lesson 2 >> Welcome to my first WebGL tutorial! This first lesson is based on number 2 in the NeHe OpenGL tutorials, which are a popular way of learning 3D graphics for game development. Here’s what the lesson looks like when run on a browser that supports WebGL: Click here and you’ll see the live WebGL version, if you’ve got a browser that supports it; here’s how to get one if you don’t. More on how it all works below… A quick warning: These lessons are targeted at people with a reasonable amount of programming knowledge, but no real experience in 3D graphics; the aim is to get you up and running, with a good understanding of what’s going on in the code, so that you can start producing your own 3D Web pages as quickly as possible. There are two ways you can get the code for this example; just “View Source” while you’re looking at the live version, or if you use GitHub, you can clone it (and future lessons) from the repository there. You’ll see the following HTML code: Next: . .
50 Excellent Adobe After Effect Tutorials Adobe After Effects is a digital motion graphics and compositing software. Its main purpose is for film and video post-production. With Adobe After Effects it’s possible to create so great looking visual effects as in “Hollywood style” movies. Adobe After Effects is mainly used to create visual effects for commercials and movies but you can also create image slide-shows, some small videos, transition effects for websites and stuff like that. It is not difficult to learn by your own. For beginners Introduction to Adobe After Effects | Andrew Kramer Basic effects | Andrew KramerLearn to create some basic effects using After Effects. Animation | Andrew KramerNow you can learn how to create an animation. Trim Paths | Aharon RabinowitzLearn how to create simple trim paths. Simple Reflection Techniques | Aharon RabinowitzVery simple but cool technique creating reflections. Web 2.0 Glossy Text | Matt EvansLearn to create a glossy text. Rendering | Shoaib KhanLearn about rendering your video.
HTML5 Reset OpenGL Step by Step - OpenGL Development on Linux Grunt: The JavaScript Task Runner Boil Up Click here to watch the video. In March 2013, I was contacted by Olivier Jean in New Zealand who was working on an installation for the Auckland War Memorial Museum. This exhibition, called Moana – My Ocean, allows visitors to experience many of the oceanic wonders that surround the beautiful country of New Zealand from the dynamic of the surface waters all the way down into Kermadec Trench which plunges 10,000 meters deep. One of the installations for this exhibition is all about the phenomenon of the “boil up”. National Geographic – Bluefin tuna eating bait ball BBC – Blue Planet Earthtouch – Ultimate Sardine Run Experience The bait balls that form in the Hauraki Gulf often contain many of the following species: pilchard, anchovies, mackerels, kahawai, kingfish, dolphins, bronze whaler sharks, diving gannets and the Bryde’s whale. I did a personal project a couple years ago where I was trying to simulate a bait ball using code. Step 1: Bait Ball formation Step 2: The (smaller) Predators
Learn OpenGL, extensive tutorial resource for learning Modern OpenGL JavaScript Code Smells In the past I've given presentations, recorded videos, and written blog posts about fixing common JavaScript and jQuery bugs. This is a good skill to have, but what about working code? Fixing broken code is important, but have you ever gotten into the situation where your code works, but it doesn't feel quite right... maybe even smells? "A code smell is a surface indication that usually corresponds to a deeper problem in the system" --CodeSmell by Martin Fowler As we grow as developers we strive to write more maintainable code, but on our journey we often times don't know what that looks like yet. Your JavaScript may pass stardard JSHint rules, but that doesn't mean it's legit. Most developers can smell brittle and fragile code a mile away, but it takes time and training to combat against these smells. Video The following video was recorded this year at FluentConf. Types of Smells The following are the types of smells that I cover throughout the presentation. Slides
btr . Stephen Schieberl's blog about making things and doing stuff Bringing lo-fi sign technology to the streets of New York Stephen Schieberl / Posted: 2012-07-29 07:42 PM / Updated: 2012-11-19 10:10 AM / 2 comments TNT teamed up with Breakfast to create a one of a kind interactive billboard for their new show, Perception. While most advertisers in New York City are exploring the latest in LED technology, creating a homogeneous landscape of flashing lights, Breakfast reached into the past to revive a forgotten technology. The billboard is made up of over 44,000 dots which are white on one side, black on the other, and can flip between the two. Tags: Projects Massive interactive display at the UEFA Euro Championships Stephen Schieberl / Posted: 2012-07-29 06:46 PM / Updated: 2012-07-29 07:45 PM / 0 comments Radical Media undertook an ambitious digital signage project for the Nike My Time Is Now campaign at the UEFA Euro Championships in Warsaw, Poland. An easy way to keep your installation software alive Pushing the framework for iPhone and iPad Tags: Code
OpenGL Step by Step - OpenGL Development on Linux Angular Classy Angular's controllers are super-simple which is fantastic for getting started (they're just functions). Because they are just functions, there's lots of different ways to write Angular controllers. This is powerful but can also lead to a lack of structure, especially when many people (with many different coding styles) are working on the same codebase. It can be helpful to have something a little more structured and prescriptive. Enter Angular Classy! The code to the right is a Classy controller for a simple Todo application. Hover your cursor over the code on the right for comments and explanations. Injecting Dependencies Angular veterans will know that if you want your Angular code to work with minifiers then you have to annotate your dependencies (i.e. list your dependencies twice), like so (without Classy): app.controller 'AppCtrl', ['$scope', '$location', '$http', ($scope, $location, $http) -> ] If you want to add/remove a dependancy then you need to remember to do it in two places. FAQs
The Nature of Code “Trigonometry is a sine of the times.” — Anonymous In Chapters 1 and 2, we carefully worked out an object-oriented structure to make something move on the screen, using the concept of a vector to represent location, velocity, and acceleration driven by forces in the environment. We could move straight from here into topics such as particle systems, steering forces, group behaviors, etc. If we did that, however, we’d skip an important area of mathematics that we’re going to need: trigonometry, or the mathematics of triangles, specifically right triangles. Trigonometry is going to give us a lot of tools. We’ll get to think about angles and angular velocity and acceleration. So this chapter is a bit of a mishmash. 3.1 Angles OK. The first order of business is to cover radians and degrees. Figure 3.1 It’s fairly intuitive for us to think of angles in terms of degrees. Figure 3.3 Processing, however, requires angles to be specified in radians. The formula to convert from degrees to radians is: if
Angular directives for Bootstrap The $uibPosition service provides a set of DOM utilities used internally to absolute-position an element in relation to another element (tooltips, popovers, typeaheads etc...). getRawNode(element) Takes a jQuery/jqLite element and converts it to a raw DOM element. parameters element(Type: object) - The element to convert. returns (Type: element) - A raw DOM element. parseStyle(element) Parses a numeric style value to a number. value(Type: string) - The style value to parse. (Type: number) - The numeric value of the style property. offsetParent(element) Gets the closest positioned ancestor. element(Type: element) - The element to get the offset parent for. (Type: element) - The closest positioned ancestor. scrollbarWidth(isBody) Calculates the browser scrollbar width and caches the result for future calls. isBody(Type: boolean, Default: false, optional) - Is the requested scrollbar width for the body/html element. (Type: number) - The width of the browser scrollbar. position(element, includeMargins)