<?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>Ashima Group Blog &#187; Ashima Arts</title>
	<atom:link href="http://blog.ashimagroup.net/category/ashimaarts/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ashimagroup.net</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 10:53:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Ashima Arts&#8217; Open Source Noise Used in WebGL Demo</title>
		<link>http://blog.ashimagroup.net/2011/08/18/ashima-arts-open-source-noise-used-in-webgl-demo/</link>
		<comments>http://blog.ashimagroup.net/2011/08/18/ashima-arts-open-source-noise-used-in-webgl-demo/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 23:17:06 +0000</pubDate>
		<dc:creator>mir</dc:creator>
				<category><![CDATA[Ashima Arts]]></category>

		<guid isPermaLink="false">http://blog.ashimagroup.net/?p=140</guid>
		<description><![CDATA[Here&#8217;s a great example of our noise function used to power a beautiful piece of 3D art in WebGL.  Click on the image to go check it out (with a WebGL-enabled browser, of course&#8230;)]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a great example of our noise function used to power a beautiful piece of 3D art in WebGL.  Click on the image to go check it out (with a WebGL-enabled browser, of course&#8230;)</p>
<p><a href="http://www.miaumiau.cat/2011/08/curl-noise-volume-shadow-particles/"><img class="aligncenter size-large wp-image-141" title="particles" src="http://blog.ashimagroup.net/wp-content/uploads/2011/08/miau-575x324.png" alt="particles" width="575" height="324" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ashimagroup.net/2011/08/18/ashima-arts-open-source-noise-used-in-webgl-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exploring the moon with WebGL and OCaml</title>
		<link>http://blog.ashimagroup.net/2011/04/22/exploring-the-moon-with-webgl-and-ocaml/</link>
		<comments>http://blog.ashimagroup.net/2011/04/22/exploring-the-moon-with-webgl-and-ocaml/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 00:16:08 +0000</pubDate>
		<dc:creator>ijm</dc:creator>
				<category><![CDATA[Ashima Arts]]></category>

		<guid isPermaLink="false">http://blog.ashimagroup.net/?p=17</guid>
		<description><![CDATA[So we have finally got the contracts in place to start work on a cool interface to the Lunar Reconnaissance Orbiter moon data and modeling coming out of the Diviner team at UCLA. The idea is to re-use the indexing system we &#8230; <a href="http://blog.ashimagroup.net/2011/04/22/exploring-the-moon-with-webgl-and-ocaml/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So we have finally got the contracts in place to start work on a cool interface to the <a href="http://lunar.gsfc.nasa.gov/">Lunar Reconnaissance Orbiter</a> moon data and modeling coming out of the <a href="http://diviner.ucla.edu">Diviner</a> team at UCLA. The idea is to re-use the indexing system we <a href="http://www.ashimaarts.com">developed</a> to localize game events on a true-world-sized virtual planet.  We are taking that same game engine and using it to aid in model and display Diviner data and thermal model maps in real-time.  And by real-time, I mean full 3D at (hopefully) FPS game speed, and in a web browser using HTML5 technologies!</p>
<p><a href="http://blog.ashimagroup.net/wp-content/uploads/2011/04/moon_demo.png"><img class="aligncenter size-large wp-image-34" title="moon_demo" src="http://blog.ashimagroup.net/wp-content/uploads/2011/04/moon_demo-1024x795.png" alt="moon_demo" width="575" height="446" /></a></p>
<p><span id="more-17"></span></p>
<p>This is not a simple Google Earth/Moon/Mars mega-texture approach where the surface is split into many tiles at many resolutions; instead we do it more like a spectral solver for <a href="http://en.wikipedia.org/wiki/Partial_differential_equation">PDEs</a> on a sphere, including the time component.</p>
<p>The core system maps very well to a recursive functional style, and so is entirely coded in <a href="http://caml.inria.fr/">OCaml</a>.  We then compile that to a fast native app (using <a href="http://www.math.nagoya-u.ac.jp/~garrigue/soft/olabl/lablgl.html">labGL</a> rendering) or to Javascript (via <a href="https://github.com/jaked/ocamljs">ocamljs</a> and <a href="http://en.wikipedia.org/wiki/WebGL">WebGL</a>).  The latter is more interesting as every non-IE browser <a href="http://codeflow.org/entries/2011/apr/16/webgl-capabilities-analyzed/">now supports webGL</a>).</p>
<p>The big problem with webGL is that all of the engines that have so far been developed for it are based off native OpenGL engines. They try to mimic the use of 3D models, texturing and CPU side geometry used in a desktop environment; especially when porting an existing game from a mobile or native platform. Javascript has very different performance trade-offs, and not surprisingly, webGL comes into its own when used with all of the support a browser provides rather than fighting it.</p>
<p>For example to set up a texture from an image (ignoring preloading etc.):</p>
<pre class="brush: php; title: ; notranslate">function texFromElem(tex,elem) {
 gl.bindTexture(gl.TEXTURE_2D, tex);
 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, elem);
}
img = new Image();
itex = gl.createTexture();
img.onload = function() { texFromElem(itex, img); }
img.src = &quot;some-url&quot;;</pre>
<p>All the image loading and decoding is done for you. As an aside: really cool thing here is that <code>texImage2D</code> can take any HTML5 image like element. So something like this:</p>
<pre class="brush: php; title: ; notranslate">vid = document.createElement(&quot;video&quot;);
itex = gl.createTexture();
vid.innerHTML = &quot;&amp;lt;source src='&quot;+some_url+&quot;'/&amp;gt;&quot;;
vid.autoplay = true;
setInterval(function() { texFromElem(tex, vid); }, 50) ;</pre>
<p>&#8230;gives you a video texture ! (with some extra house keeping). Even cooler than that: the element can even be another canvas element, with either 2D or webGL inside it! (although good luck keeping the browsers stable at this point)</p>
<p>We&#8217;ve been developing a webGL framework that make direct use of browser-supplied parts, and we are trying to push as much of the computation as we can off into <a href="http://en.wikipedia.org/wiki/GLSL">shaders</a>. The result will be a 3D Moon interface that that has the same high-speed feel of a console game, rendering all the image data as fast as you can move around, but using <a href="http://diviner.ucla.edu/">real data from space</a> and running right inside your web browser using the latest HTML5 technologies!</p>
<p>Although we have been developing the engine so far using ocamljs, we are also evaluating the use of <a href="http://ocsigen.org/js_of_ocaml/">js_of_ocaml</a>. The latter works directly via bytecode compilation, which makes it easier to maintain than the patched compiler toolchain that the (otherwise excellent) ocamljs requires. Stay tuned for more news on this&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ashimagroup.net/2011/04/22/exploring-the-moon-with-webgl-and-ocaml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Noise about our Noise!</title>
		<link>http://blog.ashimagroup.net/2011/03/18/noise-about-our-noise/</link>
		<comments>http://blog.ashimagroup.net/2011/03/18/noise-about-our-noise/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 00:20:51 +0000</pubDate>
		<dc:creator>mir</dc:creator>
				<category><![CDATA[Ashima Arts]]></category>

		<guid isPermaLink="false">http://blog.ashimagroup.net/?p=63</guid>
		<description><![CDATA[As part of our Ooman game tech demo release, we open-sourced some code including a new implementation of simplex noise.  Noise is a key component of making procedural game assets: instead of loading in a texture for marble or clouds &#8230; <a href="http://blog.ashimagroup.net/2011/03/18/noise-about-our-noise/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As part of our <a href="http://www.ashimagames.com" target="_blank">Ooman game tech demo</a> release, we open-sourced some code including a new <a href="https://github.com/ashima/webgl-noise">implementation of simplex noise</a>.  Noise is a key component of making procedural game assets: instead of loading in a texture for marble or clouds (or most materials), you can calculate these noisy aspects of nature on the fly, and at different resolutions.</p>
<p>For webGL (and for a few other applications), current implementations of noise are problematic because of resource demands.  Our version of noise fixes these issues and has been gaining notice in the community.  Check out <a href="http://www.opengl.org/news/drop-in-replacement-noise-for-glsl/" target="_blank">this post</a> from WebGL.org:</p>
<blockquote><p>&#8220;<em>Mar 17, 2011 &#8211; </em>Since its inception, GLSL has sadly lacked native support for noise(). A few GLSL implementations of Perlin noise have been presented over the years, but now it seems like we have a winner. Ian McEwan of Ashima Arts has come up with a very clever version of “simplex noise” that requires neither texture access nor arrays. It is compatible with WebGL, it is a set of self-contained GLSL functions with no external dependencies, and it runs fast. A demo with full source code has been posted to the GLSL developer’s forum.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.ashimagroup.net/2011/03/18/noise-about-our-noise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ooman Game Tech Demo &#8211; ashimagames.com</title>
		<link>http://blog.ashimagroup.net/2011/02/24/ooman-game-tech-demo/</link>
		<comments>http://blog.ashimagroup.net/2011/02/24/ooman-game-tech-demo/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 00:09:52 +0000</pubDate>
		<dc:creator>mir</dc:creator>
				<category><![CDATA[Ashima Arts]]></category>

		<guid isPermaLink="false">http://blog.ashimagroup.net/?p=55</guid>
		<description><![CDATA[We are releasing a &#8220;vertical slice&#8221; of our new game tech demo, Ooman. Ultimately, our goal is to make Ooman an immersive 3-D puzzle platformer in a &#8220;real&#8221; virtual environment. This means full use of three spatial dimensions with smooth camera &#8230; <a href="http://blog.ashimagroup.net/2011/02/24/ooman-game-tech-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We are releasing a &#8220;vertical slice&#8221; of our new game tech demo, <a href="http://ashimagames.com/">Ooman</a>. Ultimately, our goal is to make Ooman an immersive 3-D puzzle platformer in a &#8220;real&#8221; virtual environment. This means full use of three spatial dimensions with smooth camera interpolation from any angle.  The demo highlights the 3D environment tech using WebGL including our camera model and character motion system.</p>
<p>The key thing here is: this is smooth, 3D game play <em><strong>native in a web browser!</strong></em></p>
<p><em><strong><a href="http://blog.ashimagroup.net/wp-content/uploads/2011/02/attachment.png"><img class="aligncenter size-large wp-image-60" title="Ooman" src="http://blog.ashimagroup.net/wp-content/uploads/2011/02/attachment-575x298.png" alt="Ooman" width="575" height="298" /></a></strong></em></p>
<p><span id="more-55"></span><br />
Ooman demonstrates our webGL Game Engine, including a scene graph system and smooth rigid-body motion interpolation. We chose an abstract but consistent artistic style to save on game art costs but provide a high-quality and high-resolution experience.</p>
<p>Ooman features an easy-to-use click-to-move character command system as well as the traditional WASD+QE controls. All motion and camera angles are gimbal-lock-free and can be controlled with nothing more than the left mouse button. When webGL is available for tablet computers, touch support will be trivial.</p>
<p>We are also releasing three small open source libraries to make WebGL development a little less oh-my-painful:</p>
<ul>
<li><a href="http://github.com/ashima/webgl-noise">webgl-noise</a> is a set of 2-, 3-, and 4-D simplex noise routines which use no array or texture resources but remain fast</li>
<li><a href="http://github.com/ashima/webgl-diagnostic">webgl-diagnostic</a> is a collection of Javascript utility functions for generating diagnostic reports about the local WebGL execution environment</li>
<li><a href="http://github.com/ashima/webgl-decomment">webgl-decomment</a> is a set of GLESSL comment stripping routines in C++, Javascript, Perl, and OCaml</li>
</ul>
<p>We&#8217;re going to use this basic engine for future projects, including our <a href="http://blog.ashimagroup.net/2011/04/22/exploring-the-moon-with-webgl-and-ocaml/">lunar explorer</a> and 3D model display tool&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ashimagroup.net/2011/02/24/ooman-game-tech-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Room Demo in WebGL</title>
		<link>http://blog.ashimagroup.net/2010/08/26/game-room-demo-in-webgl/</link>
		<comments>http://blog.ashimagroup.net/2010/08/26/game-room-demo-in-webgl/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 07:16:35 +0000</pubDate>
		<dc:creator>mir</dc:creator>
				<category><![CDATA[Ashima Arts]]></category>

		<guid isPermaLink="false">http://blog.ashimagroup.net/?p=257</guid>
		<description><![CDATA[&#8220;Click friction&#8221; is the drain on a game&#8217;s potential player base associated with making the player jump through hurdles to get to the game.  A major hurdle is the client download &#8211; people hate waiting for software to download and &#8230; <a href="http://blog.ashimagroup.net/2010/08/26/game-room-demo-in-webgl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&#8220;Click friction&#8221; is the drain on a game&#8217;s potential player base associated with making the player jump through hurdles to get to the game.  A major hurdle is the client download &#8211; people hate waiting for software to download and are afraid that what they&#8217;re downloading might actually be a virus.  But the flip side of the problem &#8211; building a game that doesn&#8217;t require a client or plug-in download &#8211; usually means poor quality 2D or isomorphic &#8217;3D&#8217; graphics.  Here&#8217;s where WebGL comes in.</p>
<p>WebGL is a piece of the new HTML5 standard, and it allows direct access to the graphics card from the browser.  With WebGL, the same kinds of 3D graphical environments that can be built with OpenGL / OpenGL ES can now be built right into the browser.  In principle, a player could be in a game with a single click and from any browser on any platform (so long as the browser supports the modern HTML5 standard and has non-antiquated graphics cards / drivers).  The WebGL standard is still developing, but here&#8217;s an example of a demo game room to give some idea of the possibilities:</p>
<p><a href="http://vimeo.com/14816944"><img class="aligncenter size-large wp-image-258" title="WebGL Room Demo" src="http://blog.ashimagroup.net/wp-content/uploads/2011/11/room_demo-575x519.png" alt="" width="575" height="519" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ashimagroup.net/2010/08/26/game-room-demo-in-webgl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

