<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/3-d">
  <channel>
    <title>3-D</title>
    <link>https://www.linuxjournal.com/tag/3-d</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Discrete Geometry Viewer—Image Analysis and Manipulation</title>
  <link>https://www.linuxjournal.com/content/discrete-geometry-viewer-image-analysis-and-manipulation</link>
  <description>  &lt;div data-history-node-id="1010962" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/10623f1.inline.jpg" width="480" height="203" alt="" title="DGV Creating a 3-D Texture from a Photo of My Old Drumkit" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/john-knight" lang="" about="https://www.linuxjournal.com/users/john-knight" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;John Knight&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;Developed by Australian PhD student Shekhar Chandra at Monash University, Discrete Geometry Viewer (DGV) is an intriguing piece of software. As a general package, DGV, along with its various extensions, is a quantum mechanical toolkit and 3-D viewer for C++. It allows data visualisation via images, surface and volume plots using OpenGL, as well as rapidly developed Quantum Mechanical Simulations. It uses the Blitz++, VTK visualisation and open-source Qt libraries.&lt;/p&gt;
&lt;p&gt;Breaking all that down, DGV allows you to do some really cool things with images, whether your interest is scientific or purely artistic. The program started out as a theoretical physics project under the moniker Quantum Mechanical Simulator, and Shekhar's main issue was in viewing the actual data, so he wrote DGV to fill the gap. As time goes on, Shekhar will be adding more of his PhD research work into DGV.&lt;/p&gt;
&lt;p&gt;Quoting Shekhar, future advancements will include: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Pixel values within viewer.
&lt;/li&gt;
&lt;li&gt;Saving animations.
&lt;/li&gt;
&lt;li&gt;Python shell rather than simple console output. See my project called QPythonShell, which allows one to embed a Python shell into Qt applications.
&lt;/li&gt;
&lt;li&gt;More file formats.
&lt;/li&gt;
&lt;li&gt;More transforms, like the Number Theoretic Transforms (via my new Number Theoretic Transform C library).
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Click on the Download link at the &lt;a href="http://qcplusplus.sourceforge.net"&gt;main Web site&lt;/a&gt;, and you'll be taken to a SourceForge page of hosted files. Under the Discrete Geometry Viewer heading, grab the latest package according to your system. Provided are x86 binary tarballs for Linux and Windows, as well as a source tarball. I went with the binary, which didn't have any dependency issues on my system and ran straight off the bat.&lt;/p&gt;
&lt;p&gt;You can compile from source if you really want to—especially if you don't have an Intel-based machine—but the list of requirements is fairly stringent and may be a little obscure for many systems (see the project's Web site for more details).&lt;/p&gt;
&lt;p&gt;Download and extract the tarball, and open a terminal in the new folder. To run the program, enter:&lt;/p&gt;
&lt;pre&gt;
$ ./dgv
&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;First, you need to import a picture. Any picture will do, but in terms of number crunching, something with a smaller resolution (say 800x600) and common aspect ratio (such as 4x3 or 16x9) will make things easier, as both you and the computer will end up doing a fair bit of mathematical work. Open whichever image you like with File→Open, and the image will come up on-screen. The image that appears probably will be in grayscale depending on the release version, but don't fret, it isn't necessarily going to stay that way.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/discrete-geometry-viewer-image-analysis-and-manipulation" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 27 Apr 2010 16:44:47 +0000</pubDate>
    <dc:creator>John Knight</dc:creator>
    <guid isPermaLink="false">1010962 at https://www.linuxjournal.com</guid>
    </item>
<item>
  <title>peekabot—3-D Robotic Visualization</title>
  <link>https://www.linuxjournal.com/content/peekabot-3-d-robotic-visualization</link>
  <description>  &lt;div data-history-node-id="1010964" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/10623f6.inline.jpg" width="480" height="243" alt="" title="A number of Blender-created models allow for some snazzy active objects, available freely on the Web. " typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/john-knight" lang="" about="https://www.linuxjournal.com/users/john-knight" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;John Knight&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;According to the peekabot project's Web site:&lt;/p&gt;
&lt;p&gt;    "peekabot is a distributed real-time 3-D visualization tool for robotics researchers and developers, written in C++. Its purpose is to simplify the visualization needs faced by a roboticist daily—using visualization as a debugging aid or making fancy slides for a presentation, for example.&lt;/p&gt;
&lt;p&gt;    Our goal is to provide a flexible tool that will cater to the vast majority of a roboticist's visualization needs, yet is easy to use. Typical scenarios include visualization of simulations, data display from real robots and monitoring of remotely deployed robots.&lt;/p&gt;
&lt;p&gt;    ...to enable remote data visualization, peekabot uses a distributed client-server architecture. All the gory details of networking is handled by the client library, used by your programs."&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.linuxjournal.com/ufiles/10623f5.inline.jpg" /&gt;&lt;br /&gt;
peekabot's low-level control of actions allows for some very advanced scripting, such as the object pathing shown here. &lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.linuxjournal.com/ufiles/10623f6.inline.jpg" /&gt;&lt;br /&gt;
A number of Blender-created models allow for some snazzy active objects, available freely on the Web. &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;Head to the &lt;a href="http://www.peekabot.org"&gt;Web site&lt;/a&gt;, and grab the latest tarball. In terms of library requirements, the documentation helpfully states the following (note, in the list below: *not required when building only the client API; **needed only if building the unit tests, which are disabled by default):&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
A decently recent version of GCC.
&lt;/li&gt;
&lt;li&gt;Boost 1.34.0+ (Boost.Thread, Boost.DateTime, Boost.Filesystem*, Boost.ProgramOptions* and Boost.Test**).
&lt;/li&gt;
&lt;li&gt;
Xerces-C++ 2.7.0+*.
&lt;/li&gt;
&lt;li&gt;
FLTK 1.1.6+*.
&lt;/li&gt;
&lt;li&gt;
OpenGL*.
&lt;/li&gt;
&lt;li&gt;
GLU*.
&lt;/li&gt;
&lt;li&gt;
libpng*.
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I also had to grab these development files: libxerces-c2-dev and libfltk1.1-dev. Once you download the tarball, open a terminal wherever it's saved and enter the following: &lt;/p&gt;
&lt;pre&gt;
$ tar xvzpf peekabot-x.y.z.tar.gz 
$ cd peekabot-x.y.z
$ ./configure --prefix=/usr
$ make
$ sudo make install
&lt;/pre&gt;&lt;p&gt;
Assuming all went well, when the compilation has finished, you can run the program with the command: &lt;/p&gt;
&lt;pre&gt;
$ peekabot
&lt;/pre&gt;&lt;p&gt;
Before we jump in, I have to warn you that we've covered only half the equation. peekabot is made of two key parts: the server and its clients. After the initial building process, you will have the server by itself. The server is the main GUI screen where you'll be testing and interacting with your client programs. The clients generally will be standalone programs that communicate with the peekabot server while following their own coding structure. Although this may be daunting for new users (me included), it does make the system very open, powerful and flexible.&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/peekabot-3-d-robotic-visualization" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 30 Mar 2010 15:08:48 +0000</pubDate>
    <dc:creator>John Knight</dc:creator>
    <guid isPermaLink="false">1010964 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
