<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nulldesign // lars gerckens &#187; 3D</title>
	<atom:link href="http://www.nulldesign.de/category/experiments/3d/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nulldesign.de</link>
	<description>blog &#38; portfolio</description>
	<lastBuildDate>Mon, 30 Jan 2012 21:39:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ND2D &#8211; ParticleExplorer</title>
		<link>http://www.nulldesign.de/2011/03/16/nd2d-particleexplorer/</link>
		<comments>http://www.nulldesign.de/2011/03/16/nd2d-particleexplorer/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 18:35:25 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>
		<category><![CDATA[ND2D]]></category>
		<category><![CDATA[Particles]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=497</guid>
		<description><![CDATA[I just uploaded a ParticleExplorer I&#8217;m using to debug the ND2D particlesystem. It&#8217;s already fun to play with, but be careful it can freeze your browser ;) (Note: The demo is broken with the latest Flashplayer 11 Release due to API changes) I&#8217;d really like to push ND2D to github, but I&#8217;m struggling a bit &#8230; <a href="http://www.nulldesign.de/2011/03/16/nd2d-particleexplorer/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just uploaded a ParticleExplorer I&#8217;m using to debug the ND2D particlesystem. It&#8217;s already fun to play with, but be careful it can freeze your browser ;)</p>
<p><a href="http://www.nulldesign.de/wp-content/uploads/2011/particle_explorer/main.html" target="_blank"><img class="alignnone size-full wp-image-498" title="Bildschirmfoto 2011-03-16 um 19.29.50" src="http://www.nulldesign.de/wp-content/uploads/2011/03/Bildschirmfoto-2011-03-16-um-19.29.50.png" alt="" width="500" height="283" /></a><br />
(Note: The demo is broken with the latest Flashplayer 11 Release due to API changes)</p>
<p>I&#8217;d really like to push ND2D to github, but I&#8217;m struggling a bit with the current public PB3D release. There are some nasty bugs that make the renderings look ugly (Bilinear filtering is not working properly). I guess I have to wait for the next update :(</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/03/16/nd2d-particleexplorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ND2D Molehill 2D Engine</title>
		<link>http://www.nulldesign.de/2011/03/10/nd2d-molehill-2d-engine/</link>
		<comments>http://www.nulldesign.de/2011/03/10/nd2d-molehill-2d-engine/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 09:24:23 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>
		<category><![CDATA[ND2D]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=482</guid>
		<description><![CDATA[I just came back from the FITC Amsterdam and because at the whole conference, Molehill was all over the place, I felt like I have to post the progress of my Molehill accelerated 2D engine. Here is another test with 1600 animated sprites using spritesheets. It runs with 40fps on my machine in Safari, Firefox &#8230; <a href="http://www.nulldesign.de/2011/03/10/nd2d-molehill-2d-engine/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just came back from the FITC Amsterdam and because at the whole conference, Molehill was all over the place, I felt like I have to post the progress of my Molehill accelerated 2D engine. Here is another test with 1600 animated sprites using spritesheets. It runs with 40fps on my machine in Safari, Firefox is a lot slower and it feels a bit jerky. Maybe it&#8217;s an issue of the incubator build, maybe an issue in my engine&#8230; I&#8217;ll find out.</p>
<p><a href="http://www.nulldesign.de/wp-content/uploads/2011/nd2d_spritesheets/Main.html" target="_blank"><img class="alignnone size-full wp-image-483" title="Bildschirmfoto 2011-03-10 um 10.00.52" src="http://www.nulldesign.de/wp-content/uploads/2011/03/Bildschirmfoto-2011-03-10-um-10.00.52.png" alt="" width="500" height="250" /></a><br />
(Note: The demo is broken with the latest Flashplayer 11 Release due to API changes)</p>
<p><a href="https://github.com/nulldesign/nd2d" target="_blank"><strong>Check out the demos showing all effects and features on Github.</strong></a></p>
<p>I&#8217;ll push the engine open source in an alpha version next week (I hope&#8230;). These are the features that are already implemented:</p>
<p>- Flash-displaylist-like hierarchy for 2D elements (It will feel very familar)<br />
- 2D sprites with spritesheets for animation, tinting, blendmodes, pivot points<br />
- Scenes &amp; scene management<br />
- 2D camera<br />
- SpriteClouds for fast sprite rendering (batch drawing)<br />
- Configurable particlesystem that runs entirely on the GPU<br />
- Full mouseevent support for sprites<br />
- Utils (Color mixing, random number generation, &#8230;)<br />
- Extendible rendering pipeline to build your own effects and extensions using PixelBender 3D.</p>
<p>Planned features are:<br />
- Pixel precise mouse events. At the moment it&#8217;s only a bounding box check.<br />
- Faster batching of SpriteClouds.<br />
- More particlesystem options<br />
- ATF texture support<br />
- Distortion effects<br />
- Box2D integration<br />
- &#8230;</p>
<p>And if anyone likes to contribute, just drop me an email&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/03/10/nd2d-molehill-2d-engine/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Pixel Bender 3D beta available</title>
		<link>http://www.nulldesign.de/2011/03/03/pixel-bender-3d-beta-available/</link>
		<comments>http://www.nulldesign.de/2011/03/03/pixel-bender-3d-beta-available/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 08:52:24 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>
		<category><![CDATA[Pixelshader]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=447</guid>
		<description><![CDATA[Good news everyone. Since a few hours a version of the Pixel Bender 3D compiler has reached the public beta phase. You can download it here. Now you&#8217;re able to write vertex and fragment shaders not only with assembler-like opcodes, but with a lot more readable language. Instead of: mov ft0, v0 tex ft1, ft0, &#8230; <a href="http://www.nulldesign.de/2011/03/03/pixel-bender-3d-beta-available/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Good news everyone. Since a few hours a version of the Pixel Bender 3D compiler has reached the public beta phase. You can download it <a href="http://labs.adobe.com/technologies/pixelbender3d/" target="_blank">here</a>.<br />
Now you&#8217;re able to write vertex and fragment shaders not only with assembler-like opcodes, but with a lot more readable language.</p>
<p>Instead of:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">mov ft0, v0
tex ft1, ft0, fs1 <span style="color: #66cc66;">&lt;</span>2d,clamp,linear<span style="color: #66cc66;">&gt;</span>
mov oc, ft1</pre></div></div>

<p>You can write much more readable code like this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">void</span> evaluateFragment<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
    float4 <span style="color: #0066CC;">color</span> = sample<span style="color: #66cc66;">&#40;</span>textureImage, float2<span style="color: #66cc66;">&#40;</span>uv.<span style="color: #006600;">x</span>, uv.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    result = <span style="color: #0066CC;">color</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>To use a PD3D shader in Molehill you have to write three pixelshaders. The first one is the vertex shader that calculates the vertex position, the second one will be the material vertex shader which (optionally) prepares and calculates data for the fragment shader and finally the fragment shader which is responsible to set the pixel color. Here is an example of the most simple shader you can imagine:</p>
<p>Vertex Shader:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">vertex kernel <span style="color: #000000; font-weight: bold;">default</span>
<span style="color: #66cc66;">&lt;</span>namespace : <span style="color: #ff0000;">&quot;AIF Test&quot;</span>;
vendor : <span style="color: #ff0000;">&quot;Adobe&quot;</span>;
<span style="color: #0066CC;">version</span> : <span style="color: #cc66cc;">1</span>;<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&#123;</span>
    parameter float4x4 objectToClipSpaceTransform;
&nbsp;
    input vertex float4 vertexPosition
    <span style="color: #66cc66;">&lt;</span>id : <span style="color: #ff0000;">&quot;PB3D_POSITION&quot;</span>;<span style="color: #66cc66;">&gt;</span>
&nbsp;
    output float4 vertexClipPosition;
&nbsp;
    <span style="color: #0066CC;">void</span> evaluateVertex<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        vertexClipPosition = vertexPosition <span style="color: #66cc66;">*</span> objectToClipSpaceTransform;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Material Vertex Shader &amp; Fragment Shader:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">material kernel <span style="color: #0066CC;">color</span>
<span style="color: #66cc66;">&lt;</span>namespace : <span style="color: #ff0000;">&quot;AIF Test&quot;</span>;
vendor : <span style="color: #ff0000;">&quot;Adobe&quot;</span>;
<span style="color: #0066CC;">version</span> : <span style="color: #cc66cc;">1</span>;<span style="color: #66cc66;">&gt;</span>
<span style="color: #66cc66;">&#123;</span>
    input vertex float4 vertexColor
    <span style="color: #66cc66;">&lt;</span>id : <span style="color: #ff0000;">&quot;PB3D_COLOR&quot;</span>;<span style="color: #66cc66;">&gt;</span>
&nbsp;
    interpolated float4 <span style="color: #0066CC;">color</span>;
&nbsp;
    output float4 result;
&nbsp;
    <span style="color: #0066CC;">void</span> evaluateVertex<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0066CC;">color</span> = vertexColor;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #0066CC;">void</span> evaluateFragment<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        result = <span style="color: #0066CC;">color</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>To compile a shader program from these three shaders you can use the included PBASMCompiler:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> inputVertexProgram:PBASMProgram = <span style="color: #000000; font-weight: bold;">new</span> PBASMProgram<span style="color: #66cc66;">&#40;</span>compiledVertexProgramBinary<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> inputMaterialVertexProgram:PBASMProgram = <span style="color: #000000; font-weight: bold;">new</span> PBASMProgram<span style="color: #66cc66;">&#40;</span>compiledMaterialVertexProgramBinary<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> inputFragmentProgram:PBASMProgram = <span style="color: #000000; font-weight: bold;">new</span> PBASMProgram<span style="color: #66cc66;">&#40;</span>compiledMaterialFragmentProgramBinary<span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> programs:AGALProgramPair = PBASMCompiler.<span style="color: #006600;">compile</span><span style="color: #66cc66;">&#40;</span>inputVertexProgram, inputMaterialVertexProgram, inputFragmentProgram<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> agalVertexBinary:ByteArray = programs.<span style="color: #006600;">vertexProgram</span>.<span style="color: #006600;">byteCode</span>;
<span style="color: #000000; font-weight: bold;">var</span> agalFragmentBinary:ByteArray = programs.<span style="color: #006600;">fragmentProgram</span>.<span style="color: #006600;">byteCode</span>;
&nbsp;
program = context3D.<span style="color: #006600;">createProgram</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
program.<span style="color: #006600;">upload</span><span style="color: #66cc66;">&#40;</span>agalVertexBinary, agalFragmentBinary<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>For a description how to connect a pixelshader to data streams look into the PDF and the examples that are included in the PB3D release. The documentation is already pretty good ;)</p>
<p>If you have no idea what I&#8217;m talking about and you&#8217;re have heard the word pixelshader for the first time, take a look at <a href="http://www.bytearray.org/?p=2555" target="_blank">Thibault&#8217;s intro to Molehill </a>and <a href="http://lab.polygonal.de/2011/02/27/simple-2d-molehill-example/" target="_blank">Michael&#8217;s Simple 2D Molehill example</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/03/03/pixel-bender-3d-beta-available/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Molehill Demo</title>
		<link>http://www.nulldesign.de/2011/03/02/molehill-demo/</link>
		<comments>http://www.nulldesign.de/2011/03/02/molehill-demo/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 13:18:48 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=440</guid>
		<description><![CDATA[I made this demo a while ago to test the performance of my molehill port of ND3D. You should see 144 of these little fellas that are lighted by a simple lighting shader and animated on the GPU. Each of these dudes has about 1500 polygons and 100 frames of animation data and it runs &#8230; <a href="http://www.nulldesign.de/2011/03/02/molehill-demo/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I made this demo a while ago to test the performance of my molehill port of ND3D.</p>
<p>You should see 144 of these little fellas that are lighted by a simple lighting shader and animated on the GPU. Each of these dudes has about 1500 polygons and 100 frames of animation data and it runs with at least 50 fps on my machine. Molehill simply rocks. This is just the beginning :)</p>
<p><a href="http://www.nulldesign.de/wp-content/uploads/2011/022/Main.html" target="_blank"><img class="alignnone size-full wp-image-441" title="figur" src="http://www.nulldesign.de/wp-content/uploads/2011/03/figur.jpg" alt="" width="500" height="303" /></a><br />
(Note: The demo is broken with the latest Flashplayer 11 Release due to API changes)</p>
<p>You need the Flash Player Incubator Plugin to view the demo. Grab it <a href="http://labs.adobe.com/technologies/flashplatformruntimes/incubator/" target="_blank">here</a>.</p>
<p>(No preloader, so be patient the browser will hang for a short while, while initializing the character animations.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/03/02/molehill-demo/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Molehill released!</title>
		<link>http://www.nulldesign.de/2011/03/01/molehill-released/</link>
		<comments>http://www.nulldesign.de/2011/03/01/molehill-released/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 10:52:31 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=436</guid>
		<description><![CDATA[As you might have noticed the latest flash player codenamed &#8220;Molehill&#8221; has been released to the public. Finally everyone can play around with the new GPU features. Read about the details here: Changing the web, again. In my previous post, I mentioned my plans for Molehill. Meanwhile I have developed a 2D engine based on &#8230; <a href="http://www.nulldesign.de/2011/03/01/molehill-released/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As you might have noticed the latest flash player codenamed &#8220;Molehill&#8221; has been released to the public. Finally everyone can play around with the new GPU features. Read about the details here: <a href="http://www.bytearray.org/?p=2810" target="_blank">Changing the web, again</a>.</p>
<p>In my previous post, I mentioned my plans for Molehill. Meanwhile I have developed a 2D engine based on Molehill and I will release the beta version within the next days hopefully. Unfortunately I was on a holiday and just came back yesterday. Now my inbox is flowing over and I&#8217;m back into my projects, but I will use the next days to clean up the code, write a few examples and get that thing online for you.</p>
<p>Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/03/01/molehill-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash 3D &#8211; Molehill</title>
		<link>http://www.nulldesign.de/2011/01/13/flash-3d-molehill/</link>
		<comments>http://www.nulldesign.de/2011/01/13/flash-3d-molehill/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 22:00:18 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Molehill / Stage3D]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=394</guid>
		<description><![CDATA[It&#8217;s been a while since my last &#8220;real&#8221; post&#8230; but it&#8217;s about time, there are so many things happening. I&#8217;m still pretty busy developing large scale flex applications for clients and it&#8217;s still fun, but obviously I went out for a walk to the &#8220;other side&#8221; and learned Objective C on the iPhone. I was &#8230; <a href="http://www.nulldesign.de/2011/01/13/flash-3d-molehill/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since my last &#8220;real&#8221; post&#8230; but it&#8217;s about time, there are so many things happening. I&#8217;m still pretty busy developing large scale flex applications for clients and it&#8217;s still fun, but obviously I went out for a walk to the &#8220;other side&#8221; and learned Objective C on the iPhone. I was always interested in hardware accelerated graphic programming and the iOS platform was a nice and easy way to learn it, because all the tools were there and I could just start. So I started learning <a href="http://www.nulldesign.de/fluidtoy2/" target="_blank">OpenGL on the iPhone</a>, which was a lot of fun &#8230; and gave me headaches sometimes.</p>
<p>A few month ago I was asked by Adobe to take part in a prelease team for the new upcoming Flash Player codenamed &#8220;<a href="http://labs.adobe.com/technologies/flash/molehill/" target="_blank">Molehill</a>&#8221; and guess how excited I was (Thanks <a href="http://www.bytearray.org/" target="_blank">Thibault</a>!). Finally our dreams are becoming reality: Hardware accelerated Flash content. Leveraging the GPU to do all the rendering at nearly native speed in the browser, wow:</p>
<p><object width="590" height="357"><param name="movie" value="http://www.youtube.com/v/tgwi0lWgX8w?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/tgwi0lWgX8w?version=3" type="application/x-shockwave-flash" width="590" height="357" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>As you know, I built my own little <a href="http://www.nulldesign.de/projects/nd3d-as3-3d-engine/" target="_blank">3D engine (ND3D)</a> in Flash and hey it became a little successful and a few people are still using it. Of course it never could compete with all the big engines like Papervision3D, but it&#8217;s small, fast and lightweight.</p>
<p>As you can imagine I&#8217;m playing around a lot with the new <a href="http://www.bytearray.org/?p=2555" target="_blank">Molehill API</a> and it&#8217;s so stunning and I can&#8217;t wait for the final player to be released to the public. I also thought about what to do with ND3D and if it would make sense to port the engine to Molehill and make use of the hardware acceleration. This time I can&#8217;t compete with the major players as well (<a href="http://away3d.com/" target="_blank">Away3D</a>, <a href="http://www.alternativaplatform.com/en/alternativa3d/" target="_blank">Alternativa3D</a> or <a href="http://www.flare3d.com/" target="_blank">Flare3D</a>) which are making their engines ready for Molehill, but it was never my goal to compete &#8230;</p>
<p>My goal for the next version of ND3D is to build a small and easy extendible 3d library that has all the basic features you need to display high quality 3d content (loading textures and meshes, animating them, extendible materials, lighting, reflections, etc&#8230;). Since I&#8217;m still a &#8220;learner&#8221; in many 3D topics, it&#8217;s challenging and very exiting (I never coded a pixelshader before Molehill&#8230;). I&#8217;m interested in way too many topics at the moment: <a href="http://en.wikipedia.org/wiki/Bump_mapping" target="_blank">Bump mapping</a>, <a href="http://en.wikipedia.org/wiki/Shadow_mapping" target="_blank">Shadow mapping</a>, <a href="http://blog.wolfire.com/2009/06/how-to-project-decals/" target="_blank">Projections</a>, just to name a few. The more I dig into graphic programming the bigger the whole world get&#8217;s&#8230; Let&#8217;s see where I will end up. So ND3D will be mainly a research and learning project for me and hopefully it will be usable to some of you. I will be open sourced and hopefully you guys like to contribute and extend it&#8230;</p>
<p>But more important is: Flash is coming from a 2D world and there are so many cool 2D games out there that need to be ported to Flash, so Flash needs a hardware accelerated 2D framework. On the iPhone I was working a lot with <a href="http://www.cocos2d-iphone.org/" target="_blank">Cocos 2D</a> and I really liked it, so I decided to create a Molehill accelerated 2D engine, let&#8217;s call it ND2D for the time being.</p>
<p>My plan it to be ready with this engine as soon as the player reaches the public beta (fingers crossed). It will be open source like ND3D and free for everyone to use. I wanna see thousands of particles and spaceships exploding at 60hz in HD in Flash, with the new player somethiing like this will be possible:</p>
<p><object width="590" height="357"><param name="movie" value="http://www.youtube.com/v/AP6TK2xFWZs?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/AP6TK2xFWZs?version=3" type="application/x-shockwave-flash" width="590" height="357" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>If you&#8217;re interested in this 3D topic and want to learn how graphic programming works, be able to write pixelshaders and be prepared for Molehill I recommend reading these two books: <a href="http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321552628/" target="_blank">OpenGL Official Learning Guide</a> and <a href="http://www.amazon.com/OpenGL-Shading-Language-Randi-Rost/dp/0321637631/" target="_blank">Pixelshader Programming in OpenGL</a>. If you&#8217;re already able to code pixelshaders for OpenGL or DirectX, Molehill will be very familar to you&#8230;</p>
<p>And I almost forgot to mention an article I just read that drove me to write this post, an interesting read about Flash competing with Unity3D: <a href="http://www.gamasutra.com/view/feature/6254/adobe_vs_unity_the_future_of_3d_.php" target="_blank">Adobe vs. Unity</a></p>
<p>So long&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2011/01/13/flash-3d-molehill/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>New example by accident</title>
		<link>http://www.nulldesign.de/2009/02/18/new-example-by-accident/</link>
		<comments>http://www.nulldesign.de/2009/02/18/new-example-by-accident/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 22:39:56 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=235</guid>
		<description><![CDATA[This is what came out as I was testing to implement a custom renderer in my engine (The sources are available in the google code repository). (space = fullscreen = more fun)]]></description>
			<content:encoded><![CDATA[<p>This is what came out as I was testing to implement a custom renderer in my engine (The sources are available in the <a href="http://code.google.com/p/nd3d/" target="_blank">google code repository</a>).</p>
<p style="text-align: center;"><a href="http://www.nulldesign.de/exp/expviewer.php?file=wobbly.swf&amp;width=600&amp;height=400"><img class="aligncenter" src="http://www.nulldesign.de/exp/wobbly.jpg" alt="" width="480" height="333" /><br />
</a><br />
(space = fullscreen = more fun)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2009/02/18/new-example-by-accident/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>F10 Astro Blackhole</title>
		<link>http://www.nulldesign.de/2008/09/30/f10-astro-blackhole/</link>
		<comments>http://www.nulldesign.de/2008/09/30/f10-astro-blackhole/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 08:31:36 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 10]]></category>
		<category><![CDATA[Particles]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=182</guid>
		<description><![CDATA[The Flash 10 beta player is out for a while and I found a few minutes to try out the new native 3D effects. You can get quite nice and fast results out of the new API if you only want to display flat 2D planes in 3D-space: (Space = fullscreen, Download source, Flash Player &#8230; <a href="http://www.nulldesign.de/2008/09/30/f10-astro-blackhole/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://labs.adobe.com/technologies/flashplayer10/">Flash 10 beta player</a> is out for a while and I found a few minutes to try out the new native 3D effects. You can get quite nice and fast results out of the new API if you only want to display flat 2D planes in 3D-space:</p>
<p style="text-align: center;"><a href="http://www.nulldesign.de/exp/expviewer.php?file=f10_planets.swf&amp;width=600&amp;height=450"><img class="aligncenter" src="http://www.nulldesign.de/exp/f10_planets.jpg" alt="" width="480" height="305" /></a><br />
(Space = fullscreen, <a href="http://www.nulldesign.de/exp/f10_planets.zip">Download source</a>, Flash Player 10 needed)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2008/09/30/f10-astro-blackhole/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ND3D engine goes google.code</title>
		<link>http://www.nulldesign.de/2008/08/07/nd3d-engine-goes-googlecode/</link>
		<comments>http://www.nulldesign.de/2008/08/07/nd3d-engine-goes-googlecode/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 10:30:45 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=105</guid>
		<description><![CDATA[Good news everyone! I packed everything together, cleaned up a bit and created a google.code project for my 3D engine. Since it became popular under the name &#8216;nulldesign&#8217;s 3d engine&#8217; I call it ND3D from now on ;). I will post additional infos, more examples and future developments here in my blog and on the &#8230; <a href="http://www.nulldesign.de/2008/08/07/nd3d-engine-goes-googlecode/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Good news everyone! I packed everything together, cleaned up a bit and created a <a href="http://code.google.com/p/nd3d/">google.code project</a> for my 3D engine. Since it became popular under the name &#8216;nulldesign&#8217;s 3d engine&#8217; I call it ND3D from now on ;). I will post additional infos, more examples and future developments <a href="http://www.nulldesign.de/nd3d-as3-3d-engine/">here</a> in my blog and on the project page. So long&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2008/08/07/nd3d-engine-goes-googlecode/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>3d engine website</title>
		<link>http://www.nulldesign.de/2008/07/11/3d-engine-website/</link>
		<comments>http://www.nulldesign.de/2008/07/11/3d-engine-website/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 10:41:32 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=71</guid>
		<description><![CDATA[I just got a mail from Mr.Doob, he made a 3d line clock for the D///FEST 2008 website with my 3d engine. You can download the sources on the website: Btw.: I&#8217;m planning to put the engine up to google code and continue working on it. It will stay lightweight, small and simple!]]></description>
			<content:encoded><![CDATA[<p>I just got a mail from <a href="http://mrdoob.com/blog/" target="_blank">Mr.Doob</a>, he made a 3d line clock for the <a href="http://d3fest.org/2008/" target="_blank">D///FEST 2008</a> website with my <a href="http://www.nulldesign.de/2008/04/09/3d-engine-sources-examples/" target="_blank">3d engine</a>. You can download the sources on the website:</p>
<p><a href="http://d3fest.org/2008/" target="_blank"><img class="alignnone size-full wp-image-72" title="d3fest" src="http://www.nulldesign.de/wp-content/uploads/2008/07/d3fest.jpg" alt="" width="500" height="237" /></a></p>
<p>Btw.: I&#8217;m planning to put the engine up to google code and continue working on it. It will stay lightweight, small and simple!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2008/07/11/3d-engine-website/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3D Engine Sources + Examples</title>
		<link>http://www.nulldesign.de/2008/04/09/3d-engine-sources-examples/</link>
		<comments>http://www.nulldesign.de/2008/04/09/3d-engine-sources-examples/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 12:31:21 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>
		<category><![CDATA[Source]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/?p=61</guid>
		<description><![CDATA[About some time ago I started to code my own 3D engine in flash. Derived from a small AS2 project, I challenged myself to built my own flash 3D engine. So I took out my good old Actionscript Animation Book and opened the 3D chapter. Very soon I could move a cube around. A few &#8230; <a href="http://www.nulldesign.de/2008/04/09/3d-engine-sources-examples/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>About some time ago I started to code my own 3D engine in flash. Derived from a small AS2 project, I challenged myself to built my own flash 3D engine. So I took out my good old <a href="http://www.friendsofed.com/book.html?isbn=1590595181" target="_blank">Actionscript Animation Book</a> and opened the 3D chapter. Very soon I could move a <a href="http://www.nulldesign.de/2006/11/10/solid3dengine/" target="_blank">cube</a> around. A few pages later I learned how to implement simple <a href="http://www.nulldesign.de/exp/expviewer.php?file=lighting_test.swf&amp;width=800&amp;height=400">dynamic lighting</a>. The next challenge was to get texture mapping to work. Since flash still can&#8217;t distort images, you need a workaround. After I found these great examples: <a href="http://www.sebleedelisle.com/?page_id=7" target="_blank">Seb Lee-Delisle&#8217;s flash texture maps</a> and <a href="http://session.andre-michelle.com/w3d/" target="_blank">Andre Michelle&#8217;s texture examples</a> it was done. Somewhere inbetween I switched to AS3, which was quickly done. Meanwhile <a href="http://blog.papervision3d.org/" target="_blank">Papervision3D</a> became very popular and I thought it didn&#8217;t make sense to continue evolving my engine. But since I came so far, I needed to find out how to implement a few effects like <a href="http://www.nulldesign.de/exp/expviewer.php?file=3d_blur.swf&amp;width=800&amp;height=400">depth of field</a> or <a href="http://www.nulldesign.de/exp/expviewer.php?file=f9_3d_additive_cubes.swf&amp;width=800&amp;height=400">additive rendering</a> ;)</p>
<p style="text-align: center;"><img src="http://www.nulldesign.de/exp/3dengine_samples.jpg" alt="" width="472" height="473" /></p>
<p>My engine shouldn&#8217;t and doesn&#8217;t compete with <a href="http://blog.papervision3d.org/" target="_blank">Papervision3D</a> or <a href="http://www.flashsandy.org/blog/" target="_blank">Sandy3D</a>, nor it has a very user-friendly API, no stunning effects or animation support, but I learned a lot while building it, understanding 3D to 2D rendering, optimizing the code for a few ms of extra speed (AS3 rocks!) or challenge problems with 3D rotations like <a href="http://en.wikipedia.org/wiki/Gimbal_Lock" target="_blank">gimbal lock</a> and their solutions: <a href="http://en.wikipedia.org/wiki/Quaternion" target="_blank">quaternions</a>. It&#8217;s just another 3D flash engine, at least I can say: I made it! ;)</p>
<p>It&#8217;s undocumented, there&#8217;s still a lot of work to do and it doesn&#8217;t have a cool name , but if you want to play around with it or just take a look how I set up this and that, feel free to download the <a onclick="urchinTracker('3dengine_nulldesign.zip')" href="http://www.nulldesign.de/nd3d-as3-3d-engine/">sources</a> (yes, the <a href="http://www.nulldesign.de/exp/expviewer.php?file=3dribbon.swf&amp;width=700&amp;height=400">3D ribbon</a> example is included). And I&#8217;m always interested in what you think about it, so drop a comment or mail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2008/04/09/3d-engine-sources-examples/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Blackhole Simulator</title>
		<link>http://www.nulldesign.de/2008/01/11/blackhole-simulator/</link>
		<comments>http://www.nulldesign.de/2008/01/11/blackhole-simulator/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 07:37:29 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Particles]]></category>
		<category><![CDATA[Simulations]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/2008/01/09/backhole-simulator/</guid>
		<description><![CDATA[Another small test with my 3D Engine, I will post the sources for my 3D experiments within the next weeks, promised ;) (Press any key to toggle fullscreen)]]></description>
			<content:encoded><![CDATA[<p>Another small test with my 3D Engine, I will post the sources for my 3D experiments within the next weeks, promised ;)</p>
<p style="text-align: center"><a href="http://www.nulldesign.de/exp/expviewer.php?file=blackhole.swf&amp;width=600&amp;height=300" target="_blank"><img src="http://www.nulldesign.de/exp/blackhole.jpg" height="249" width="480" /></a><br />
(Press any key to toggle fullscreen)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2008/01/11/blackhole-simulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D Galaxy</title>
		<link>http://www.nulldesign.de/2007/10/31/3d-galaxy/</link>
		<comments>http://www.nulldesign.de/2007/10/31/3d-galaxy/#comments</comments>
		<pubDate>Wed, 31 Oct 2007 16:30:06 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/2007/10/31/3d-galaxy/</guid>
		<description><![CDATA[Just a small test with my 3D Engine, the idea obviously is &#8220;slightly&#8221; adapted from the latest Flash Player 10 (Astro) presentation at MAX Chicago, but you don&#8217;t need the Flash Player 10 for this ;) Launch! (I&#8217;m still working on the engine API, when I&#8217;m satisfied with it, I will release the sources)]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.nulldesign.de/exp/3d_galaxy.jpg" height="265" width="470" /></p>
<p>Just a small test with my 3D Engine, the idea obviously is &#8220;slightly&#8221; adapted from the latest <a href="http://www.youtube.com/watch?v=ympeCv8lLmw" target="_blank">Flash Player 10 (Astro) presentation</a> at MAX Chicago, but you don&#8217;t need the Flash Player 10 for this ;) <a href="http://www.nulldesign.de/exp/expviewer.php?file=3d_galaxy.swf&amp;width=500&amp;height=400" target="_blank">Launch!</a></p>
<p>(I&#8217;m still working on the engine API, when I&#8217;m satisfied with it, I will release the sources)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2007/10/31/3d-galaxy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>3D Ribbon</title>
		<link>http://www.nulldesign.de/2007/09/30/3d-ribbon/</link>
		<comments>http://www.nulldesign.de/2007/09/30/3d-ribbon/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 15:48:45 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/2007/09/30/3d-ribbon/</guid>
		<description><![CDATA[Just another test with additive Colors. Klick mouse to cycle through the different coloring modes: Launch!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.nulldesign.de/exp/3dribbon2.jpg" height="244" width="434" /></p>
<p>Just another test with additive Colors. Klick mouse to cycle through the different coloring modes: <a href="http://www.nulldesign.de/exp/expviewer.php?file=3dribbon.swf&amp;width=700&amp;height=400" target="_blank">Launch!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2007/09/30/3d-ribbon/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Additive Cubes</title>
		<link>http://www.nulldesign.de/2007/06/22/additive-cubes/</link>
		<comments>http://www.nulldesign.de/2007/06/22/additive-cubes/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 15:48:12 +0000</pubDate>
		<dc:creator>lars</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash 9]]></category>

		<guid isPermaLink="false">http://www.nulldesign.de/2007/06/22/additive-cubes/</guid>
		<description><![CDATA[Now my engine supports additive colormixing. It&#8217;s slowing the framerate down a bit, at least it looks cool ;) Press space to toggle between additive and normal rendering: Launch!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.nulldesign.de/exp/f9_3d_additive_cubes2.jpg" height="269" width="481" /></p>
<p>Now my engine supports additive colormixing. It&#8217;s slowing the framerate down a bit, at least it looks cool ;) Press space to toggle between additive and normal rendering: <a href="http://www.nulldesign.de/exp/expviewer.php?file=f9_3d_additive_cubes.swf&amp;width=800&amp;height=400" target="_blank">Launch!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldesign.de/2007/06/22/additive-cubes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

