background preloader

Genetic Programming: Evolution of Mona Lisa

Genetic Programming: Evolution of Mona Lisa
[EDIT] Added FAQ here: Gallery here: This weekend I decided to play around a bit with genetic programming and put evolution to the test, the test of fine art :-) I created a small program that keeps a string of DNA for polygon rendering. The procedure of the program is quite simple: 0) Setup a random DNA string (application start) 1) Copy the current DNA sequence and mutate it slightly 2) Use the new DNA to render polygons onto a canvas 3) Compare the canvas to the source image 4) If the new painting looks more like the source image than the previous painting did, then overwrite the current DNA with the new DNA 5) repeat from 1 Now to the interesting part :-) Could you paint a replica of the Mona Lisa using only 50 semi transparent polygons? That is the challenge I decided to put my application up to. So what do you think? Like this: Like Loading...

Optimizing JavaScript code - Make the Web Faster Authors: Gregory Baker, Software Engineer on GMail & Erik Arvidsson, Software Engineer on Google Chrome Recommended experience: Working knowledge of JavaScript Client-side scripting can make your application dynamic and active, but the browser's interpretation of this code can itself introduce inefficiencies, and the performance of different constructs varies from client to client. Here we discuss a few tips and best practices to optimize your JavaScript code. Defining class methods The following is inefficient, as each time a instance of baz.Bar is constructed, a new function and closure is created for foo: baz.Bar = function() { // constructor body this.foo = function() { // method body }; } The preferred approach is: baz.Bar = function() { // constructor body }; baz.Bar.prototype.foo = function() { // method body }; With this approach, no matter how many instances of baz.Bar are constructed, only a single function is ever created for foo, and no closures are created. For example, instead of:

Polygons Evolving Into Your Custom Picture Polygons Evolving Into Your Custom Picture There’s now a configurable web app for the semi-transparent vectors evolution approach mentioned earlier. Using Firefox (among other browsers, but not Internet Explorer – the page is Canvas-based), you provide a JPEG URL and then hit the Start button to watch the image mutate and evolve. [Via Reddit. >> More posts Advertisement This site unofficially covers Google™ and more with some rights reserved.

Thinkmap visualization software facilitates communication, learning, and discovery. Software Updates: Courgette ‎(Chromium Developer Documentation)‎ The source code does not have this problem because all the entities in the source are symbolic. Functions don't get committed to a specific address until very late in the compilation process, during assembly or linking. If we could step backwards a little and make the internal pointers symbolic again, could we get smaller updates? Courgette uses a primitive disassembler to find the internal pointers. The non-pointer part is about 80% of the size of the original program, and because it does not have any pointers mixed in, it tends to be well behaved, having a diff size that is in line with the changes in the source code. We bring the pointers under control by introducing 'labels' for the addresses. How do we use this to generate a better diff? server: diff = bsdiff(original, update) transmit diff client: receive diff update = bspatch(original, diff) (The server would pre-compute diff so that it could be transmitted immediately) server: asm_old = disassemble(original) asm_new = disassemble(update)

HTML5, JavaScript and OpenGL: The Upcoming 3D Internet Technologies | TrueHit Designs HTML5, JavaScript, OpenGL and other technologies are paving the way for an upcoming explosion of 3D content which users can interact with on the World Wide Web. These new technologies will continue to help TrueHit Designs build unique websites, web advertisements, entertainment and other media which is attractive to the end user. We have compiled a short list of demonstrations to show you these unique technologies. First we will start with a simple test to show the 3D abilities. We now see a complete environment. With this demonstration you can see how we can demonstrate a 3D model to a user or perspective client. We can take this to an extreme and display a massive scale model, with very fine details. Let us move onto film. We now take the same video and environment as shown in the example to the left and demonstrate just how extreme the environmental effects can be.

Wobzip - (Un)Compress on the Fly Workshop / Chrome Experiments Unfortunately, either your web browser or your graphics card doesn't support WebGL. We recommend you try it again with Google Chrome. Top 10 Best HTML5 Websites of 2013 Here are our editor's picks for the Top 10 Best HTML5 Websites of 2016 based on visual artistry, integrated sound, ease of use, and uniqueness. 1 | The Wilderness Downtown The Wilderness Downtown is an interactive music video for Arcade Fire's song ''We Used to Wait''. Visitors are asked to input the address of the home they grew up in and then the site uses Google Earth and HTML5 to create a personalized music video that takes the user on a journey back home. 2 | Heart of The Artic Heart of The Arctic takes users on an Arctic expedition/scavenger hunt through four distinct environments designed to show users the steps that would be needed to restore climate balance to the arctic region. This site perfectly showcases how Html5 can be used to create fun and educational websites. 3 | Three Dreams of Black 3 Dreams of Black uses HTML5 to promote Danger Mouse and Daniele Luppi's album Rome.

10 Awesome Data Visualization Tools for the WebDigitalAnalog – An Online Publication for Creativity + Code Data Visualization is an upcoming and exciting field that represents data in aesthetically pleasing and readily comprehensible form. Instead of using boring excel sheets, data can be presented in a more creative format with the help of Data Visualization tools. The term Data Visualization is closely related to information graphics, information visualization, scientific visualization and statistical graphics. It presents complex sets of data in an interactive and intuitive way. Today we take a look at some creative and interesting Data Visualization tools that web designers and developers might find useful. Arbor.js Arbor.js is a graph visualization library built with web workers and jQuery. D3.js This is a JavaScript library that helps in manipulating documents based on data. D3.js is not a monolithic framework that seeks to provide every conceivable feature. Envision.js With Envision.js, you can create dynamic interactive HTML5 data visualizations. Google Chart Tools Kartograph Leaflet

dygraphs JavaScript Visualization Library Javascript Visualization Libraries To Display Charts And Graphs - 34 Items Creating charts or graphs can be relatively easy if you are using a Javascript visualization library. A library makes things easier for you and also makes available a lot of functions with which you could make lovely graphs to visualize your data. These following tools are the ones you need if you are working on a website project where you have to create charts or graphs, like a stock market site, for example, or if you are making a visual presentation in HTML format. FusionCharts FusionCharts is the oldest and the most comprehensive solutions in the space. D3.js D3.js is a JavaScript library for manipulating documents based on data. Raphaël Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. Raphaël uses the SVG W3C Recommendation and VML as a base for creating graphics. Rickshaw Rickshaw is a JavaScript toolkit for creating interactive time series graphs. Morris.js Making good-looking graphs shouldn’t be hard. Flotr2 Bonsai dygraphs sigma.js Ico

HTML5 Zone | DZone Reza Rahman JSF + AngularJS = AngularFaces? Powered by several factors, JavaScript/rich client frameworks like AngularJS appear to be presenting a serious challenge to the server-side stalwarts of JSF, Spring MVC and the like. Ariya Hidayat Tracking JavaScript Annotations One of the interesting features of Esprima is to retrieve every comment inside a JavaScript source. Hirvesh Munogee Layers CSS: A Lightweight, Unobtrusive, Style-Agnostic CSS Framework The framework comes with inbuilt CSS normalization, a fluid grid, layout tools, by default maintains native form styles, has no px definitions, no colors, no borders and no rounded definitions, and no dependencies at all. Juri Strumpflohner Integrating Node.js with a C# DLL An option that came to mind is to design the DLL as a self-contained process and to invoke it using Node.js's process api. Sarah Ervin The Best of the Week (Mar. 28): HTML5 Zone HTML5 Zone Link Roundup (Apr. 5) Nashorn: The New Rhino on the Block Evert Pot

Making WebGL Dance Bresenham Lines Scanline Rendering Snap To Pixel "Anti-Aliasing!" Sub-Pixel Accuracy Samples Vector World Raster World Sampling Nearest Neighbour Filter Bilinear Filter Aliasing Anisotropic Filtering ⨉ 16 Sampling Theorem – Nyquist Frequency Jaggies = Sampled Edge Anti-Aliasing (AA) = Blur All The Things? Pixel Coverage – Box Filter SuperSampling (SSAA ⨉ 16) MultiSampling (MSAA ⨉ 16) Sampled Box Filter + Bilinear Filter Distance Function – Pixel-wide Gradient AA = Filter Before Sampling Gaussian Blur, MIP Mapping, Anisotropic Filter Sub-Pixel AA (RGB) -webkit-font-smoothing Height Map – Perlin Derivative Noise Depth – Z-Buffer / Shadow Map Normals – Deferred Lighting Affine Transforms Rotation Scaling Skewing Parallel Lines Vector Basis New Basis Disassemble and Reassemble Matrix-Vector Multiply Matrix-Matrix Multiplication Ordinary 2D Space Projective 2D Space Z Vector = Translation + Scale X/Y Vector = Perspective Projective 3D Transform = 3D XYZ Matrix + Translation + Perspective Object Space to World Space Or Back Again

Dive Into HTML5

Related: