Archive for the ‘ENGINE’ Category
Monday, March 16th, 2009
Libspark from Japan is a treasure trove of great flash advancements, they seem to realize the great things that can come from porting in existing solid libraries from C/C++ etc into flash and have been scoring lately including augmented reality in flash porting the ARToolkit to FLARToolkit. Recently a port of openCV for as3 called Marilena was found and it is for object detection and decent facial recognition (it is a computer vision library from intel) considering the processing power needed to do this.
Face Detection: Here is the sample included with Marilena showing facial detection on an image.

Lots of recent action has blown up on this front from Mr doob, quasimondo (optimizing the Marilena classes for better performance) and Boffwswana. Also there is a kit called deface by sshipman that is the first foray into this a year ago doing similar things but it was just a bit before it’s time and a bit slow in previous versions of flash, it performs decent now in this sample. Flash 10 performance of the AVM2 and future directions with Alchemy will lead to more interesting stuff just like this.
Mr. doob head tracking sample, be sure to check lots of other examples there

Boffswana example of head tracking Johnny Lee Wii style with only a webcam and flash, no wiimote needed since it uses facial detection to check where you are and how close you are in the screen and then moves accordingly.

This is stemming from the recent explosion of the FLARToolkit and augmented reality in flash as well as the gimmicks used by Nintendo with the wii and Johnny Lee’s great head tracking advancements. Porting great libraries to flash seems to be the phase we are entering now judging by the recent excitement around Adobe Alchemy and the LLVM along with the lead from the libspark.org contributors. We have also seen this heavily last year in ports of Box2D for 2d physics and other toolkits using established working code and porting that to flash now that is is mostly capable of handling the performance.
OpenCV (Open Computer Vision Library by Intel) is quite a powerful platform that allows you to do all this and now it is available in flash. There are other great libraries for nearly all platforms now. I have done some previous work with Aforge which is also a port of OpenCV mainly for motion detection. This was always around but not until the recent performance updates and the innovation that has come with Alchemy and the thinking that goes along with that (porting in libraries to flash from C/C++ etc), has allowed this to flourish in flash and thus the web.
The amazing new things we can do with flash by porting in existing libraries is only going to get more intense as alchemy and flash 10 are even more mainstream. It is almost as if Flash will eventually just become a web renderer and simplified front end to many great toolkits that exist in more native environments like C/C++ but with the speed and distribution access of the web with Flash. Exciting times ahead.
Tags: 3d, ACTIONSCRIPT, AS3, detection, face, FLASH, flash 10, head, libspark, marilena, MOTION, opencv, recognition, tracking, visual
Posted in 3D ENGINES, 3d, ACTIONSCRIPT, ACTIONSCRIPT3, ADOBE, ALCHEMY, APPLICATIONS, ARCHITECT, AS3, BEST OF, CODE, ENGINE, FLASH, FLEX, GAMEDEV, GAMES, LIBRARIES, MOTION, OPEN SOURCE, PAPERVISION, PERFORMANCE, PROGRAMMING, RENDERING, TECHNOLOGY, TOOLS, Uncategorized | View Comments
Wednesday, February 18th, 2009
Looks like it is a javascript day here at *drawlogic. Here is an interesting example with some demos of a javascript and canvas based pseudo 3d engine. Anything this cool you know it has to be from Japan.
Also of note, it has been rumored that Silverlight 3 will have fully hardware accelerated 3d and canvas and javascript engines are getting much faster with great demos like this. Adobe needs to leap into hardware acceleration for flash on a broader scale soon.
But I digress, this demo it appears, was inspired by Papervision3D due to the naming and the javascript reference of “parpevision.js“. I wasn’t able to find much more information about this but it is very well done and this example even shows some environment mapping. It is not close to flash pseudo-3d engines like Papervision3D yet but at the rate of javascript engine development lately this could rival flash AVM2 in the next couple of years.

Demos
Code
Here is the code for the parpevision.js file and the mini engine, it is an MIT license. (more…)
Tags: 3d, canvas, ENGINE, FLASH, japan, JAVASCRIPT, PAPERVISION, papervision3d, pseudo
Posted in 3D ENGINES, 3d, CODE, DEVELOPMENT, ENGINE, GAMEDEV, GAMES, JAVASCRIPT, LIBRARIES, OPEN SOURCE, PAPERVISION, RENDERING, TECHNOLOGY | View Comments
Wednesday, February 18th, 2009
Tags: 2d, AS3, FLASH, JAVASCRIPT, PHYSICS, prototype, web
Posted in ANIMATION, DEVELOPMENT, ENGINE, GAMEDEV, GAMES, JAVASCRIPT, LIBRARIES, OPEN SOURCE, PHYSICS, TECHNOLOGY | View Comments
Thursday, December 4th, 2008
Nicolas Cannasse is at it again. This time with a PBJ (Pixel Bender File) binary file reader and writer in haXe and Pixel Bender Assembler tools. What this can do is create and decompile PBJ files with haXe, the possibilities are limitless to how this is used including dynamic pbj file creation.
The latest haXe file format library contains complete support to read and write PBJ file, enabling you to write Pixel Bender assembler directly in haXe, then compile it on-the-fly into PBJ bytes, which can then be saved on disk or loaded directly in Flash.
I plan to have much more on Pixel Bender (shaders in flash) and Adobe Alchemy (compile other languages to which is a very cool technology that involves LLVM that Nicolas also has lots of great input on.
Tags: ACTIONSCRIPT, ADOBE, ALCHEMY, AS3, bender, PIXEL
Posted in ACTIONSCRIPT, ACTIONSCRIPT3, ADOBE, ALCHEMY, APPLICATIONS, ARCHITECT, AS3, EFFECTS, ENGINE, OPEN SOURCE, PERFORMANCE, PIXEL, PIXEL BENDER, PROGRAMMING, TECHNOLOGY, TOOLS, VIRTUAL MACHINES | Comments Off
Saturday, October 11th, 2008

as3isolib is a great isometric library for actionscript 3 by Justin Opitz. This is a lower level isometric library that could be used in building your own isometric gaming engine or learning more about the popular isometric view in games or other flash content.
From building basic blocks…

To constructing sprites and objects with individual iso objects with their own bounding boxes.

This sample shows a two piece tree, a common issue with sprites in isometric is where to slice them up. This sample shows a tree with the leaves able to be in front of a character so that you could walk under the tree and be in front of the trunk but covered by the trees. Essentially height is respected.
Sample code for the tree tutorial:
package
{
import as3isolib.display.IsoSprite;
import as3isolib.display.primitive.IsoBox;
import as3isolib.display.scene.IsoGrid;
import as3isolib.display.scene.IsoScene;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class IsoApplication extends Sprite
{
private var scene:IsoScene;
private var assets:Object;
private var loader:Loader
private function loadAssets ():void
{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, loader_initHandler);
loader.load(new URLRequest("assets/swf/assets.swf"));
}
private function loader_initHandler (evt:Event):void
{
buildScene();
}
private function buildScene ():void
{
scene = new IsoScene();
scene.hostContainer = this;
scene.container.x = 200;
scene.container.y = 200;
var treeTrunkClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("TreeTrunk") as Class;
var treeLeavesClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("TreeLeaves") as Class;
var grid:IsoGrid = new IsoGrid();
grid.showOrigin = false;
scene.addChild(grid);
var s0:IsoSprite = new IsoSprite();
s0.setSize(25, 25, 65);
s0.moveTo(50, 50, 0);
s0.sprites = [treeTrunkClass];
scene.addChild(s0);
var s1:IsoSprite = new IsoSprite();
s1.setSize(125, 125, 100);
s1.moveTo(0, 0, 75);
s1.sprites = [treeLeavesClass];
scene.addChild(s1);
scene.render();
}
public function IsoApplication ()
{
loadAssets();
}
}
}
current features
- simple scene creation
- 3 primitive types
- base class for displaying user-created content
- plenty of styling option on vector based primitives
- integrates well with a variety of tween engines
- standard 3D isometric positional sorting
So get busy building the flash version of roller coaster tycoon…
Tags: ACTIONSCRIPT, AS3, FLASH, FLEX, game, GAMEDEV, iso, isometric, orthographic, projection
Posted in ACTIONSCRIPT, ACTIONSCRIPT3, ARCHITECT, AS3, DEVELOPMENT, ENGINE, FLASH, FLEX, GAMEDEV, GAMES, LIBRARIES, OPEN SOURCE, PROGRAMMING, RENDERING, TECHNOLOGY, TOOLS, isometric | View Comments
Sunday, August 24th, 2008
The Zupko show continues with reflections in Papervision 3D [demo].

Be sure to check out the shadow demo that this is based on:

After posting my shadow experiment, Patrick Matte posed a question wondering if I would be able to do real-time reflections in a similar manner. The next day I had it done, along with some nice iterations along the way: orthographic and perspective projection (I can release those later if anyone really wants them). I’ve been sitting on it every since and finally decided I would take the time to write a little description into how its done and give the code to those who are interested (and I fixed up some code for backface culling in the reflection this morning).
Tags: 3d, AS3, FLASH, orthographic, PAPERVISION, projection, reflections
Posted in 3D ENGINES, 3d, ACTIONSCRIPT, ACTIONSCRIPT3, ARCHITECT, AS3, DEVELOPMENT, EFFECTS, ENGINE, FLASH, FLEX, GAMEDEV, OPEN SOURCE, PAPERVISION, PROGRAMMING, RENDERING, TECHNOLOGY, isometric | View Comments
Thursday, July 17th, 2008
UPDATE: See comments and papervision list for revert of this change. You can now use localRotationX, localrotationY and localRotation Z instead. yaw(), pitch() and roll() are back by popular demand.
Hi List,
Sorry for this confusion, but we decided to revert back to pitch(
angle ), yaw( angle ) and roll( angle ) methods.
There are three new getter / setters now though:
do3d.localRotationX
do3d.localRotationY
do3d.localRotationZ
So:
pitch( 30 ) would be the same as doing localRotationX = 30;
Note that localRotationX / Y /Z are rotations relative to the
rotation as set by rotationX / Y / Z.
Also note that after do3d.lookAt() localRotationX/Y/Z will be resetted to 0
Tim
ORIGINAL POST:
Papervision 3D 2.0 Alpha has been undergoing lots of changes and one you might want to know about is the object yaw, pitch and roll change. Thisis changing on how you access them but only slightly. This is good because you an read and write the values on the object not just set them. Per the papervision list from the man Tim Knip:
On many users request:
DisplayObject3D‘s methods pitch(), yaw() and roll() are now getters / setters.
Usage:
do3d.yaw = degrees;
do3d.pitch = degrees;
do3d.roll = degrees;
var myYaw : Number = do3d.yaw;
This means these values are now ‘absolute’ values instead of previous
‘relative’ values as in deprecated do3d.yaw( 1 );
Let me know any issues (as I’m sure there are…)
Tim
This only affects the latest and greatest revisions of papervision but is definitely a good change. It is good to make changes that make more sense without worrying about breaking changes.
Tags: 3d, change, GAMEDEV, object, PAPERVISION
Posted in 3D ENGINES, 3d, ACTIONSCRIPT, ACTIONSCRIPT3, ARCHITECT, AS3, DEVELOPMENT, ENGINE, FLASH, FLEX, GAMEDEV, PAPERVISION, PROGRAMMING, RENDERING, TECHNOLOGY | View Comments
Saturday, June 21st, 2008
[youtube]http://www.youtube.com/watch?v=YEM-XAeY4K0[/youtube]
3D models from basic video… This can be huge in all sorts of ways. For exponential growth you need to go virtual.
- This is a technology called VideoTrace from Australia
- The Siggraph paper describing VideoTrace is available here (pdf 6MB)
- Larger videos available here, with a more compressed version here.
Tags: 3d, camera, environment, GAMEDEV, model, modeling, real, trace, tracker, VIDEO, VideoTrace, virtual
Posted in 3D ENGINES, 3DSMAX, 3d, ALGORITHM, APPLICATIONS, ARCHITECT, DEVELOPMENT, DYNAMIC, ENGINE, GAMEDEV, INTERACTIVE, INTERFACE, MARKET, PERFORMANCE, PROGRAMMING, RENDERING, TECHNOLOGY, VIDEO, VISUALIZATION | View Comments
Tuesday, April 22nd, 2008
Sean Christmann has a nice post on the AS3 AVM 2 ‘Elastic Racetrack’ cycles or virtual machine tick that runs an ES4 based javascript version of actionscript which we all know and love. The post has some info on how the AVM2 cycles run and can provide benefits to understanding frame rates and how execution is divided between script and render as well as player code from user code.


Tags: AS3, avm, avm2, cycle, elastic, FLASH, FLEX, PERFORMANCE, racetrack, render, tick
Posted in ACTIONSCRIPT, ACTIONSCRIPT3, APPLICATIONS, ARCHITECT, AS3, DEBUGGING, DEVELOPMENT, ENGINE, FLASH, FLEX, GAMEDEV, PERFORMANCE, PROGRAMMING, RENDERING, STANDARDS, TECHNOLOGY, VIRTUAL MACHINES, VISUALIZATION | View Comments
Thursday, April 17th, 2008
This will blow you away. Found first via mrdoob (with quantum rss reading capability, before the message is concieved mrdoob is there).
Alternativa Platform, previously Alternativa Game, launched their Alternativa Platform milestone 1 and really one demo would have been enough but there are some great demos there that literally put them what appears a couple laps up on the 3d FPS style engine in Flash.
The engine is highly optimized and smooth, heavy on the processor, but using the ‘t’ key you can see some nice revealing triangle rendering. Also, playing with the field of view adds for some nice game effects. (try jumping on the fans in the half-life like room in the first demo)
Check the textures

See the Matrix

Get superpowers

From Above, Isometric

Here is what is to come from the platform:
Congrats to the Russian based Alternativa Platform, the world is watching.
Tags: 3d, ACTIONSCRIPT, actionscript 3, alternativa, AS3, FLASH, FLEX, fps, isometric, russia
Posted in 3D ENGINES, 3d, ACTIONSCRIPT, ACTIONSCRIPT3, ARCHITECT, AS3, DEVELOPMENT, ENGINE, FLASH, FLEX, GAMEDEV, GAMES, MARKET, PERFORMANCE, PROGRAMMING, RENDERING, TECHNOLOGY | View Comments