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...

Operational transformation Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced collaborative software systems. OT was originally invented for consistency maintenance and concurrency control in collaborative editing of plain text documents. Two decades of research has extended its capabilities and expanded its applications to include group undo, locking, conflict resolution, operation notification and compression, group-awareness, HTML/XML and tree-structured document editing, collaborative office productivity tools, application-sharing, and collaborative computer-aided media design tools (see OTFAQ). In 2009 OT was adopted as a core technique behind the collaboration features in Apache Wave and Google Docs. History[edit] Operational Transformation was pioneered by C. System architecture[edit] Basics[edit] The basic idea of OT can be illustrated by using a simple text editing scenario as follows. Consistency models[edit] The CC model[edit] T(ins( ),ins( and

aravind.ca - Home 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. Why Bloom filters work the way they do Imagine you’re a programmer who is developing a new web browser. There are many malicious sites on the web, and you want your browser to warn users when they attempt to access dangerous sites. For example, suppose the user attempts to access An obvious naive way is for your browser to maintain a list or set data structure containing all known malicious domains. In this post I’ll describe a data structure which provides an excellent way of solving this kind of problem. Most explanations of Bloom filters cut to the chase, quickly explaining the detailed mechanics of how Bloom filters work. In this post I take an unusual approach to explaining Bloom filters. Of course, this means that if your goal is just to understand the mechanics of Bloom filters, then this post isn’t for you. A stylistic note: Most of my posts are code-oriented. General description of the problem: Let’s begin by abstracting away from the “safe web browsing” problem that began this post. of objects.

Unigine (3D engine for games and virtual worlds) UNIGINE™ is a cutting-edge real-time 3D engine for games, simulation, visualization, serious games and virtual reality systems. There are two editions of the SDK: UNIGINE Sim (designed for the Simulation and Training, Real-Time Visualization, and Virtual Reality industries)UNIGINE Game (designed for the Entertainment industry) Platforms UNIGINE all-in-one technology framework is available on a broad range of platforms, scaling from mobile devices to high-end PCs: Photorealistic Graphics "We found the engine handled very large scenes really well while maintaining great AA and light quality." Steve Brodie, CEO of AI3D Pty Ltd. UNIGINE Engine has support for all the latest and greatest rendering features that hardware can provide: Your customers get 90% of information through visual representation of your product, so make it look great! Live Physics Enable your 3D world to realistically interact with users using the powerful UNIGINE Engine Physics toolset. Read more... Limitless Worlds Read more...

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)

Bloom filter Bloom proposed the technique for applications where the amount of source data would require an impracticably large hash area in memory if "conventional" error-free hashing techniques were applied. He gave the example of a hyphenation algorithm for a dictionary of 500,000 words, out of which 90% follow simple hyphenation rules, but the remaining 10% require expensive disk accesses to retrieve specific hyphenation patterns. With sufficient core memory, an error-free hash could be used to eliminate all unnecessary disk accesses; on the other hand, with limited core memory, Bloom's technique uses a smaller hash area but still eliminates most unnecessary accesses. For example, a hash area only 15% of the size needed by an ideal error-free hash still eliminates 85% of the disk accesses (Bloom (1970)). More generally, fewer than 10 bits per element are required for a 1% false positive probability, independent of the size or number of elements in the set (Bonomi et al. (2006)). . . . as before.

3D CAFE - Home Wobzip - (Un)Compress on the Fly Bitap algorithm The bitap algorithm (also known as the shift-or, shift-and or Baeza-Yates–Gonnet algorithm) is an approximate string matching algorithm. The algorithm tells whether a given text contains a substring which is "approximately equal" to a given pattern, where approximate equality is defined in terms of Levenshtein distance — if the substring and pattern are within a given distance k of each other, then the algorithm considers them equal. The algorithm begins by precomputing a set of bitmasks containing one bit for each element of the pattern. Then it is able to do most of the work with bitwise operations, which are extremely fast. Due to the data structures required by the algorithm, it performs best on patterns less than a constant length (typically the word length of the machine in question), and also prefers inputs over a small alphabet. Exact searching[edit] The bitap algorithm for exact string searching, in full generality, looks like this in pseudocode: Fuzzy searching[edit]

Electric Art. Creative Retouching and 3D. Standard Procedural Databases by Eric Haines et al. click on an image to see a full size rendering (rendered with POV-Ray 3.1) You can download the latest version of the SPD (currently 3.14), and also view the original IEEE CG&A article from Nov. 1987. This software package is not copyrighted and can be used freely (for example, WCT2POV, a good 3D file converter for Windows, uses SPD's libvec.c graphics library). All source is in K&R vanilla C (though ANSI headers can be enabled) and has been used on many systems. A MacOS version can be found on Eduard Schwan's SPD page. For a newer set of more realistic environments for benchmarking ray tracers (or renderers in general), see BART: A Benchmark for Animated Ray Tracing. This software is meant to act as a set of basic test images for ray tracing algorithms. Another interesting use for the SPD has been noted: debugging. The Neutral File Format (NFF) is the default output format from SPD programs. Other output formats are supported: Compatibility Notes Linux On some (all?)

Box Shot 3D: Ebook Cover and Boxshot Software For Windows and Mac » Home The table is based on Boxshot Ultimate, lower editions may lack some of the features (mostly shapes and automation). See here for the detailed comparison of editions. Select your Boxshot home$79 professional$199 ultimate$299 Amazing Quality at an Affordable Price Professional Tool for the Professional Designer Fully Loaded Edition for Real Professionals! Box Shot 3D is retired, which means there will be no further updates for it anymore. Paradigm Shift: Design Considerations For Parallel Programming Paradigm Shift Design Considerations For Parallel Programming David Callahan This article is based on a prerelease of Visual Studio tools. All information herein is subject to change. From about 1986 to 2002, the performance of microprocessors improved at the rate of 52% per year. On the software side, this phenomenon is called the "free lunch"—application performance improving simply by upgrading the hardware on which it runs. But the model is changing; today, performance is improved by the addition of processors. Concurrency and Parallelism For some time now, programmers have had to think about a programming challenge related to parallelism—concurrency. The Microsoft .NET Framework provides the asynchronous programming model and notions of background workers to facilitate this common programming concern. Another familiar form of concurrency applies to server applications. Concurrent programming is notoriously difficult, even for experts. References Structured Multithreading Data Parallelism

Related: