Today, we are pleased to announce the first stable release of Forge - a high performance OpenGL visualization library for C/C++ applications that use CUDA/OpenCL.
<h3>Features</h3>
Forge's functionality is primarily exposed via C API. We recommend using the C++ wrapper written atop C API. The C API is mainly intended to enable easy write of bindings for other languages. Given below are some sample code snippets and images for the functionality that is part of v1.0 release.

<h4>Windows</h4>

<ul> 	
 	<li>Full documentation of the library can be found <a href="http://arrayfire.org/forge/index.htm">here</a>.</li>
 	<li>Forge exposes all it's objects and function via the namespace <code>forge</code>. It has the following main classes.
<ul>
 	<li><code>forge::Window</code> - objects of this class provide the rendering canvas over which other objects are rendered.</li>
 	<li><code>forge::Image</code> and <code>forge::Chart</code> are the two main rendering objects that drawn on <code>forge::Window</code>
<ul>
 	<li><code>forge::Image</code> is a rendering of a simple image to Window.</li>
 	<li><code>forge::Chart</code> is base object to which other plotting objects (listed below) are appended and rendered in the order of addition with alpha blending.
<ul>
 	<li><code>forge::Histogram</code> - bar graphs</li>
 	<li><code>forge::Plot</code> - 2D and 3D plots</li>
 	<li><code>forge::Surface</code> - 3D surface plots</li>
 	<li><code>forge::VectorField</code> - 2D and 3D vector fields</li>
</ul>
</li>
</ul>
</li>
 	<li><code>forge::Font</code> - provides the choice of selecting the font for your program's rendering. You may skip using this class and the library will defer to the default fonts.</li>
 	<li><code>forge::Error</code> - This is the exception object that you should use to catch the errors thrown by Forge.</li>
</ul>
</li>
<li> Forge provides basic mouse interactivity such as pan, zoom and trackball rotation. </li>
<li> All chart objects can have legends specific to each type of plot added to charts. </li>
<li> Default window toolkit used by Forge is <a href="http://www.glfw.org/" target="_blank">GLFW</a>. However, you can also build Forge with <a href="https://www.libsdl.org/" target="_blank">SDL2</a>. </li>
 	<li>Forge being a rendering only library, provides only the logic for rendering. However, we do provide helper functions through <a href="https://github.com/arrayfire/forge/blob/devel/include/ComputeCopy.h">ComputeCopy.h headers</a> for the user's convenience.</li>
 	<li>You can find the list of examples <a href="http://arrayfire.org/forge/examples.htm">here</a>. These examples use the above <code>ComputeCopy</code> header.</li>
</ul>

<h4>Sample Images</h4>

<table border="0">
<tbody>
<tr>
<td>

[caption id="attachment_9630" align="alignnone" width="283"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_image.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_image-283x300.png" alt="Image" width="283" height="300" class="size-medium wp-image-9630" /></a> Image[/caption]

</td>
<td>

[caption id="attachment_9629" align="alignnone" width="300"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_hist.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_hist-300x203.png" alt="Histogram" width="300" height="203" class="size-medium wp-image-9629" /></a> Histogram[/caption]

</td>
</tr>
<tr>
<td>

[caption id="attachment_9628" align="alignnone" width="300"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_bubble.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_bubble-300x254.png" alt="2D Plot" width="300" height="254" class="size-medium wp-image-9628" /></a> 2D Plot[/caption]

</td>
<td>

[caption id="attachment_9634" align="alignnone" width="300"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_surface.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_surface-300x238.png" alt="Surface" width="300" height="238" class="size-medium wp-image-9634" /></a> Surface[/caption]

</td>
</tr>
<tr>
<td>

[caption id="attachment_9632" align="alignnone" width="300"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_plot31.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_plot31-300x251.png" alt="3D Plot" width="300" height="251" class="size-medium wp-image-9632" /></a> 3D Plot[/caption]

</td>
<td>

[caption id="attachment_9633" align="alignnone" width="300"]<a href="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_plot32.png"><img src="https://sandbox.arrayfire.com/wp-content/uploads/2017/05/fgv1_plot32-300x253.png" alt="Rotated 3D Plot" width="300" height="253" class="size-medium wp-image-9633" /></a> Rotated 3D Plot[/caption]

</td>
</tr>
</tbody>
</table>

<h4>Community</h4>
Forge is continually improving through addition of new features. We welcome your feedback:

General discussion forums on the <a href="https://groups.google.com/forum/#!forum/arrayfire-users" target="_blank">ArrayFire Google Group</a>
Live discussion chat on the <a href="https://gitter.im/arrayfire/forge?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge&amp;utm_content=badge" target="_blank">Forge Gitter</a>
Issue reports on the <a href="https://github.com/arrayfire/forge/issues" target="_blank">Forge GitHub</a>
Finally, as you find success with Forge, we invite you to contribute a post to this blog to share with the broader community. Email sales@arrayfire.com to contribute to this blog.