<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Shapesmith</title>
  <link type="application/atom+xml" href="http://shapesmith.net/atom.xml" rel="self"/>
  <link href="http://shapesmith.net/"/>
  <updated>2012-04-22T07:55:53-07:00</updated>
  <id>http://shapesmith.net/</id>
  <author>
    <name>Benjamin Nortier</name>
    <email>bjnortier@shapesmith.net</email>
  </author>

  
  <entry>
    <id>http://shapesmith.net/2012/04/08/0.7.2</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2012/04/08/0.7.2.html"/>
    <title>0.7.2 - Sharing is here! And some Treeview enhancements.</title>
    <updated>2012-04-08T00:00:00-07:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;Up to now, you might have been able to build some really nice models with Shapesmith, but you couldn't share them except for exporting the printable STL version. What if you wanted to publish something for others to customize or improve? Now you can export and import models in a native JSON format, so you can publish and share your designs with others.&lt;/p&gt;

&lt;p&gt;But first, let me quickly tell you about some other useful new improvements in the tree view (or &amp;lsquo;advanced&amp;rsquo; view).&lt;/p&gt;

&lt;h2&gt;Copying, Deleting and Show/Hide&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/sharing/treeview-enhancements.png&quot; alt=&quot;Copying, Deleting, Showing and Hiding&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Deleting is obvious, and is only available for top-level geometries.&lt;/p&gt;

&lt;p&gt;Showing and hiding is quite useful during the design process. Sometimes you need to design parts inside of other, existing parts, but this has been is really quite hard to date. What I've done in the past is to move the geometry away, edit the part, then delete the transform to put it in its original position. Now, it is no longer necessary as you can simply show/hide geometry as you wish.&lt;/p&gt;

&lt;p&gt;Lastly, if you have an existing boolean and you require one of the child objects, you can copy them out of the tree. This is especially useful if you have deep booleans with transforms, and you don't wish to explode all the way down to the desired object.&lt;/p&gt;

&lt;p&gt;Onto the more exciting bit!&lt;/p&gt;

&lt;h2&gt;Native Import/Export&lt;/h2&gt;

&lt;p&gt;Almost all the data in Shapesmith is &lt;a href=&quot;http://www.json.org/&quot;&gt;JSON&lt;/a&gt;. From the HTTP API, to the storage format, to the serialisation format for the worker process. This makes things really simple, and hence the logical choice for native export and import for Shapesmith is JSON. If you would like to import or export a model, you would choose &amp;lsquo;json&amp;rsquo; form the import or export options:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/sharing/exportimport.png&quot; alt=&quot;Export/Import&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And you can share you designs with your friends, community, or on a website like Thingiverse. You can also export form a local installation to the online version of Shapesmith. Here you can see an iPhone 4* cupholder dock that I designed using Shapesmith:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.thingiverse.com/thing:21020/&quot;&gt;&lt;img src=&quot;/img/sharing/thingiverse.png&quot; alt=&quot;Thingiverse&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JSON is also human-readable. So this is a good time to introduce the very interesting possibility of using Shapesmith as a scriptable modelling system. For example, if you create a design with a single 10x10x10 cube and export it, you will see the JSON file looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[{
    &quot;type&quot;:&quot;cuboid&quot;,
    &quot;parameters&quot;: {
    &quot;u&quot;:10, &quot;v&quot;:10, &quot;w&quot;:10
    },
    &quot;origin&quot;: {
        &quot;x&quot;:0, &quot;y&quot;:0, &quot;z&quot;:0
    }
}]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This means that you can write a program that outputs a JSON file, and import it into a Shapesmith design. In fact, the API is designed to be programmable, so you can use it as a 3D modelling platform (for example design your own shop that uses customizable 3D printable designs).&lt;/p&gt;

&lt;p&gt;That's a glimpse into the future, but for now - make something!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://shapesmith.net/2012/03/15/BeziersArcsLofts</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2012/03/15/BeziersArcsLofts.html"/>
    <title>0.7 - Beziers, Polylines, Arcs, Revolves, Fillets, Lofts & Plane mirror</title>
    <updated>2012-03-15T00:00:00-07:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;It all started with an airfoil. I created Shapesmith because I wanted to design &amp;amp; 3D print a UAV, and the tools available were not what I wanted. Well, I'm happy to announce that I (and &lt;em&gt;YOU&lt;/em&gt;) can design bezier-based, parametric airfoils with Shapesmith 0.7:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/loft.png&quot; alt=&quot;Wing&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And also a few other cool new things.&lt;/p&gt;

&lt;h2&gt;1D Shapes&lt;/h2&gt;

&lt;p&gt;The first category is wire geometries, or 1D geometries. These are Elliptical arcs, Polylines and Beziers:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/arcbezierpolyline.png&quot; alt=&quot;ArcBezierPolyline&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Elliptical arcs can be full ellipses or arcs on the ellipse. You can also create circles and circular arcs by makes both radii the same. Polylines and Bezier curves completes the new 1D geometries.&lt;/p&gt;

&lt;h2&gt;Making faces from wires&lt;/h2&gt;

&lt;p&gt;In order to get to 3D printable objects, we need some operators to get from 1D to 2D shapes, or surfaces, and also a way to get from surfaces to solid objects.&lt;/p&gt;

&lt;p&gt;If you want to create a surface from wires, there is the make_face operator:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/make_face.png&quot; alt=&quot;Make Face&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When you select on or more wires like arcs, polylines and beziers, and they form the boundary of a potential &lt;em&gt;flat&lt;/em&gt; surface, you can make a surface (or face) from these wires. This is now a 2D shape that can be used with other operators to create a 3D shape.&lt;/p&gt;

&lt;h2&gt;Revolve and Make Solid&lt;/h2&gt;

&lt;p&gt;Next up is the revolve and make solid operator:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/make_solid.png&quot; alt=&quot;Revolve and make solid&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The revolve operator is similar to the prism operator which was introduced in 0.6, but a cylindrical equivalent. You can revolve a wire (1D) or a surface (2D) shape around an axis. If you revolve a wire, it will produce a surface. If you revolve a surface, it will produce a solid.&lt;/p&gt;

&lt;p&gt;In this example, a wire has been revolved to form a surface. It is unfortunately hard to know that it's not a solid shape, but if you subtract a solid shape from this result you will see the shape is not solid.&lt;/p&gt;

&lt;p&gt;To make a solid from this shape (basically to fill it in), you can use the make_solid operator. Then boolean operations will give the expected results as you can see in the illustration, where a cuboid has been subtracted.&lt;/p&gt;

&lt;h2&gt;Fillet&lt;/h2&gt;

&lt;p&gt;When you have a solid shape with sharp edges that you want to round off, you can use the Fillet operator:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/fillet.png&quot; alt=&quot;Fillet&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;Lofts!&lt;/h2&gt;

&lt;p&gt;I've left the best for last. When you have two (or more!) surfaces, you can use the loft opertor to create a shape that's the transition from the one to the other. You have to be careful, as some shapes will not be lofted successfully by the OpenCASCADE kernel, but you can make some really interesting shapes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/loft2.png&quot; alt=&quot;Lofts&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And if you combine that with the other new transform, plane mirror, you can create some really interesting shapes like a wing structure:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/wings/mirrored_wings.png&quot; alt=&quot;Mirrored Wings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I'm really enjoying building models with these new functions, and I hope you will try them out for yourself. Shapesmith has some really great modelling features now, which have only been available on the desktop.&lt;/p&gt;

&lt;p&gt;What other kinds of geometry would you like?&lt;/p&gt;

&lt;p&gt;Make something!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://shapesmith.net/2012/02/26/ToSimplicityAndBeyond</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2012/02/26/ToSimplicityAndBeyond.html"/>
    <title>To simplicity... and beyond!</title>
    <updated>2012-02-26T00:00:00-08:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;&amp;ldquo;Make everything as simple as possible, but not simpler.&amp;rdquo;&lt;br/&gt;
&lt;span style=&quot;padding-left: 20px;&quot;&gt;- Albert Einstein&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;When I started Shapesmith, my vision was to create a simple, yet powerful 3D modelling application. Up to a few weeks ago my main focus was on creating a strong technical foundation that I could build on, and I'm quite pleased with the current architecture. Usability had been important, but not the top priority. This has changed.&lt;/p&gt;

&lt;p&gt;My first attempt at simplifying geometry creation was illuminating, but unsatisfactory. The idea was to create a re-usable 3D cursor to move around 3D space to create radii, widths, move the origin etc. This turned out to be a step in the right direction, but too complicated for my liking.&lt;/p&gt;

&lt;p&gt;It also became obvious that making it simple to design models requires the ability to move, rotate and resize objects with only a few mouse clicks and drags. This is something that other graphics and 3D modelling applications have as standard. And as Mr Potato Head would say:&lt;/p&gt;

&lt;table style=&quot;padding-left: 20px&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;/img/tosimplicity/mrpotatohead.png&quot;/&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 20px;&quot;&gt;
&amp;ldquo;Hey, a laser! How come &lt;span style=&quot;font-style: italic&quot;&gt;you&lt;/span&gt; don't have a laser, Woody?&amp;rdquo;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;


&lt;p&gt;Well, I've been working on the laser...&lt;/p&gt;

&lt;h2&gt;Moving, Resizing, Rotating&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/tosimplicity/translatescalerotate.png&quot; alt=&quot;Moving, Resizing, Rotating&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Shapesmith now has simple translatation, rotation and scale operations. The interaction is based on &lt;a href=&quot;http://inkscape.org/&quot;&gt;Inkscape&lt;/a&gt;, my favourite vector drawing application. When an object is selected, you can see the draggable arrows that you can use to scale, and the draggable box at the center to translate the object:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/tosimplicity/translate.png&quot; alt=&quot;Translate&quot;/&gt;&lt;/div&gt;


&lt;p&gt;The scale arrows are used to scale:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/tosimplicity/scale.png&quot; alt=&quot;Scale&quot;/&gt;&lt;/div&gt;


&lt;p&gt;When you click on a selected object &lt;span style=&quot;font-style: italic&quot;&gt;again&lt;/span&gt;, the scale arrows are replaced with rotation arrows for the three major axes:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/tosimplicity/rotate.png&quot; alt=&quot;Rotate&quot;/&gt;&lt;/div&gt;


&lt;h2&gt;Mouse-only Geometry&lt;/h2&gt;

&lt;p&gt;Using the lessons learnt from the new transformations (including better abstraction in the code using parts of &lt;a href=&quot;http://documentcloud.github.com/backbone/&quot;&gt;backbone.js&lt;/a&gt;), I re-worked all the geometry creation as well with the aim of making it possible to create geometry only using the mouse. The concept of a re-usable 3D cursor has been abandoned in favour of geometry-specific interactions:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/tosimplicity/geometrycreation.png&quot; alt=&quot;Geometry creation&quot;/&gt;&lt;/div&gt;


&lt;p&gt;The Tree View is still fully functional, and can be used to edit nodes that are not top-level nodes, existing transforms etc. by double-clicking on the values. The Tree View is hidden by default but still available to advanced users:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/tosimplicity/advancedtreeview.png&quot; alt=&quot;Hidden tree View&quot;/&gt;&lt;/div&gt;


&lt;h2&gt;What's next?&lt;/h2&gt;

&lt;p&gt;In terms of usability, the next area I'm going to focus on is a dynamic workplane. At the moment, the workplane is static at the origin, and oriented in the Z=0 plane. A dynamic workplane implies being able to position it at specific coordinates, but also snapping it to flat surfaces. I would also like to experiment with other types of grids.&lt;/p&gt;

&lt;p&gt;But more importantly, what improvements and features would &lt;span style=&quot;font-style: italic&quot;&gt;YOU&lt;/span&gt; like to see next in Shapesmith?&lt;/p&gt;

&lt;p&gt;Happy making.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://shapesmith.net/2012/01/13/DesignManagement</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2012/01/13/DesignManagement.html"/>
    <title>Design management has arrived</title>
    <updated>2012-01-13T00:00:00-08:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;I'm happy to announce some great new additions and changes to Shapesmith that I've been working on for the last 6 weeks. These have been &lt;a href=&quot;http://cloud.shaesmith.net&quot;&gt;deployed online&lt;/a&gt; and version 0.3 on &lt;a href=&quot;http://www.github.com/bjnortier/shapesmith&quot;&gt;github&lt;/a&gt;. These are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User management (signin/sigup)&lt;/li&gt;
&lt;li&gt;Model management (the ability to create, delete and see you models)&lt;/li&gt;
&lt;li&gt;A new persistence architecture (including new undo/redo)&lt;/li&gt;
&lt;li&gt;Various smaller changes like easier local install, and better preview behaviour.&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Thingiverse export&lt;/del&gt; (almost there)&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;User Management&lt;/h2&gt;

&lt;p&gt;For a while now, users have been able to play with Shapesmith online, but models and users have been anonymous. Anyone could access and edit a model is they knew the url. This is obviously not a feasible strategy going forward, so online users can now create their Shapesmith account and their models will be accessible only to them.&lt;/p&gt;

&lt;p&gt;I've tried to keep this as simple as possible, so the signup process does no verification of email address (in fact, your email address is optional and will only be used when you forget your password or username in future). Sign up to claim your username now:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;a href=&quot;http://cloud.shapesmith.net/signup&quot;&gt;&lt;img src=&quot;/img/signup.png&quot; alt=&quot;signup&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/div&gt;


&lt;p&gt;Note that if you download Shapesmith and run it locally, your username will be &amp;ldquo;local&amp;rdquo;, and you will not need to sign up or sign in when using the application.&lt;/p&gt;

&lt;h2&gt;Model Management&lt;/h2&gt;

&lt;p&gt;The next fairly obvious addition to Shapesmith is model management. This allows a user to see a list of their models, create new ones, and delete them:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/designs.png&quot; alt=&quot;designs page&quot;&gt;&lt;/img&gt;&lt;/div&gt;


&lt;p&gt;In future, this would also be the place where other users can derive or copy the public models of other users.&lt;/p&gt;

&lt;p&gt;Renaming has not been implemented yet, but there is a &lt;a href=&quot;https://github.com/bjnortier/shapesmith/issues/8&quot;&gt;feature issue&lt;/a&gt; for it.&lt;/p&gt;

&lt;h2&gt;A new persistence architecture (with new undo/redo)&lt;/h2&gt;

&lt;p&gt;This is the real technical meat of the last 2 months, without which user and design managent would not have been possible. I won't elaborate too much on this at this point, a blog post will describe the design soon.&lt;/p&gt;

&lt;p&gt;The new persistence architecture is immutable. What this means is that at all times, the full history of your design is available. This does not mean that the full history is exposed through the interface, but it does create the ability to do so in future.&lt;/p&gt;

&lt;p&gt;The design is based on &lt;a href=&quot;http://git-scm.com&quot;&gt;git&lt;/a&gt;. This has made things more complex, but I believe the benefit of the additional capabilities outweigh that cost. This has also solved a problem with undo/redo that existed before (which is why saving was not available).&lt;/p&gt;

&lt;p&gt;Now, each change to the design is uniquely referenced by a &amp;ldquo;commit&amp;rdquo; value (like git). This commit is unique to the entire state of the model. Notice the commit value in the url:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/commit_url.png&quot; alt=&quot;commit url&quot;&gt;&lt;/img&gt;&lt;/div&gt;


&lt;p&gt;And where are the undo and redo buttons go? They are right here:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/undoredo.png&quot; alt=&quot;undo redo&quot;&gt;&lt;/img&gt;&lt;/div&gt;


&lt;p&gt;Because the state of each design is uniquely specified by the url, we can now make use of the HTML5 &lt;a href=&quot;http://www.w3.org/TR/html5/history.html&quot;&gt;History API&lt;/a&gt; to do undo and redo. So you can undo and redo using the browser's back and forward buttons! Awesome. This also implies that as long as you're signed in, you can load the URL of any model at any point in the designs process (i.e. bookmarks will functional properly).&lt;/p&gt;

&lt;h2&gt;And various smaller changes...&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Riak is not longer required for local installs. Local installs will just write to disk.&lt;/li&gt;
&lt;li&gt;When creating models, use the  &amp;ldquo;shift&amp;rdquo; key in conjunction with the mouse to use the current workplane values (doing this automatically caused some frustration - values would change unexpectedly)&lt;/li&gt;
&lt;li&gt;Better display of errors.&lt;/li&gt;
&lt;li&gt;STL Export of the whole model (instead of one component).&lt;/li&gt;
&lt;li&gt;Better support for Firefox&lt;/li&gt;
&lt;li&gt;Various bugfixes, minor improvements etc.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;&lt;del&gt;Thingiverse export&lt;/del&gt; (almost there)&lt;/h2&gt;

&lt;p&gt;I tried to finish export to Thingiverse for this release, but I was not able to get the upload API to work properly. The Thingiverse export from 3D Tin is also not working, so I'm not sure if the problem is on my side or theirs. Coming soon.&lt;/p&gt;

&lt;h2&gt;The future&lt;/h2&gt;

&lt;p&gt;I'm proud of what has been achieved in the last few week, and I think with this solid persistence foundation I will be able to move towards adding more modelling functionality. I'm looking forward to implementing even better geometry creation, addressing problems with the tree view, and implementing new design features like bezier curves, extrusions etc.&lt;/p&gt;

&lt;p&gt;Happy building!&lt;br/&gt;
Benjamin Nortier&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://shapesmith.net/2011/10/04/Hello-Workplane</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2011/10/04/Hello-Workplane.html"/>
    <title>Hello Workplane</title>
    <updated>2011-10-04T00:00:00-07:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;I have been working on some big changes to Shapesmith that makes it vastly more usable to create and edit models - the introduction of a workplane. The workplane will be the basis for mouse interaction when creating primitives, doing transformations etc. The workplane is centered at (0,0,0) at the moment, with no ability to move it around, but that's coming.&lt;/p&gt;

&lt;p&gt;Here are some examples of how you can create models with the new workplane:&lt;/p&gt;

&lt;iframe src=&quot;http://player.vimeo.com/video/29986821&quot; width=&quot;460&quot; height=&quot;280&quot; frameborder=&quot;0&quot; webkitAllowFullScreen allowFullScreen&gt;&lt;/iframe&gt;


&lt;h2&gt;Rotation&lt;/h2&gt;

&lt;p&gt;To rotate the workplane around, a user can drag the view with the left mouse button. Scrolling is done with the mouse wheel (I just realised that I should also support scrolling for trackpads).&lt;/p&gt;

&lt;h2&gt;Point-and-click creation primitives &lt;/h2&gt;

&lt;p&gt;For the first release, I have included creating and editing of primtives with the mouse and the workplane - this enables a user to create spheres, cuboids etc. with the mouse only. A user can right-click or left-click-and-hold on the workplane to create an object, where the origin will be placed where the user clicked:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/create-primitive.png&quot; alt=&quot;Primitive toolbar&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When the primitive is being created, a user can click on the workplane to specify dimensions, and a preview of the primitive will be shown. When clicking on the workplane, the parameters can be entered in turn, where the focus will &lt;em&gt;proceed to the next empty parameter&lt;/em&gt; every time a user clicks on the workplane:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/primitive-preview.png&quot; alt=&quot;Primitivepreview&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When satisfied, clicking on the &amp;ldquo;Ok&amp;rdquo; button will create the primitive, and clicking &amp;ldquo;Cancel&amp;rdquo; or pressing  &amp;ldquo;Esc&amp;rdquo; on the keyboard will cancel the operation.&lt;/p&gt;

&lt;h2&gt;Selection-sensitive toolbar&lt;/h2&gt;

&lt;p&gt;Once an object has been created, a user can access operations like delete, export to STL, and transformations by first selecting (left click), then accessing the context toolbar with a right-click (or left-click-and-hold):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/edit-toolbar.png&quot; alt=&quot;Edit toolbar&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For boolean operations, 2 objects should be selected, then again right-click or left-click-and-hold to show the menu for multiple objects:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/boolean.png&quot; alt=&quot;Boolean toolbar&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;In Summary&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Left-click dragging will rotate the view. The mouse wheel will zoom in and out.&lt;/li&gt;
&lt;li&gt;Left-clicking selects an object. Shift + left-clicking selects multiple objects.&lt;/li&gt;
&lt;li&gt;The toolbar is selection-sensitive, so depending on whether 0, 1 or 2 objects are selected it will offer different options.&lt;/li&gt;
&lt;li&gt;Right-clicking or left-click-and-hold pops up the toolbar for primitive creating, transforms, booleans etc.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Head on over to &lt;a href=&quot;/&quot;&gt;http://shapesmith.net&lt;/a&gt; and click the &amp;ldquo;Try it&amp;rdquo; button to gives these features a whirl.&lt;/p&gt;

&lt;p&gt;If you find any bugs, please submit them to &lt;a href=&quot;https://github.com/bjnortier/shapesmith/issues&quot;&gt;https://github.com/bjnortier/shapesmith/issues&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow &lt;a href=&quot;http://www.twitter.com/shapesmith&quot;&gt;@shapesmith&lt;/a&gt; for updates.&lt;/p&gt;

&lt;p&gt;Build something!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://shapesmith.net/2011/07/26/Welcome-To-Shapesmith</id>
    <link type="text/html" rel="alternate" href="http://shapesmith.net/2011/07/26/Welcome-To-Shapesmith.html"/>
    <title>Welcome to Shapesmith</title>
    <updated>2011-07-26T00:00:00-07:00</updated>
    <author>
      <name>Benjamin Nortier</name>
      <uri>http://shapesmith.net/</uri>
    </author>
    <content type="html">&lt;p&gt;This has taken a bit longer than I had hoped! Welcome to the Shapesmith blog and my first post about &lt;a href=&quot;http://www.shapesmith.net&quot;&gt;shapesmith.net&lt;/a&gt;. This is a quick update on the project and the plans for the near future.&lt;/p&gt;

&lt;p&gt;Since &lt;a href=&quot;http://www.1011ltd.com/web/blog/post/im_building_a_webgl_tool&quot;&gt;posting on my blog&lt;/a&gt; about working on this project, progress has been steady but slow. I have made some progress in terms of user features (such as undo/redo, saving of models and validation), but the majority of work has gone into making the backend lean and mean. Most noteworthy is the separation of api, database and worker components.&lt;/p&gt;

&lt;p&gt;The success of a cloud-based Shapesmith depends very much on addressing the scalability of BRep operations, or, effectively using processing power for multiple users. For deploying a local solution (for example on a school network), this is not as important a consideration, but a hosted Shapesmith needs to be very effective with processor utilisation in order to contain the hosting cost. &amp;quot;Traditional&amp;quot; LAMP web applications don't use a lot of processing power per user action, whereas BRep operations are by nature N cubed and require an architecture that is sentisive to this fact. The good news is that it makes the optimisation path clear - BRep operations take much longer than database operations, serializing and deserializing data, validation, etc, and I can optmize taking this into account.&lt;/p&gt;

&lt;p&gt;Is it worth mentioning that I have now transitioned to using an actual database, &lt;a href=&quot;http://www.basho.com/products_riak_overview.php&quot;&gt;Riak&lt;/a&gt;, and have switched to the community version of OpenCASCADE, &lt;a href=&quot;https://github.com/tpaviot/oce&quot;&gt;OCE&lt;/a&gt;. This is an important step for users to be able to install their own local version of Shapesmith with a stable data store and BRep library. OCE is a new community effort to improve on some of the shortcomings of OpenCASCADE, and I am pleased with the results so far (especially the cross -platform build support). I will not go into the architecture in detail in this post, but the design can accomodate scaling the application in 3 dimensions, the API nodes which handle the ReSTful calls, the DB nodes, and the worker nodes which perform the BRep operations:&lt;/p&gt;

&lt;div class=&quot;center&quot;&gt;&lt;img src=&quot;/img/architecture.png&quot; alt=&quot;architecture&quot;&gt;&lt;/img&gt;&lt;/div&gt;


&lt;p&gt;On to &lt;a href=&quot;http://shapesmith.net&quot;&gt;shapesmith.net&lt;/a&gt;. I have deployed an up-to-date version of Shapesmith to an Amazon EC2 instance for a while now. The goal was to examine the behaviour of the application in a live and long-running environment. This has led to some of the backend improvements I have already mentioned. I have been encouraged by the performance of the app on such a small instance (with low memory and processing power). I have now upgraded the instance to an EC2 small instance with more memory and processing power, as well as moving to using Riak and OCE. You are welcome to experiment with &lt;a href=&quot;http://shapesmith.net&quot;&gt;shapesmith.net&lt;/a&gt; as long as you keep in mind that it is still a preview, and I have disabled the saving of models for the moment until the model format stabilises (see below). I welcome any feedback at &lt;a href=&quot;mailto:bjnortier@shapesmith.net&quot;&gt;bjnortier@shapesmith.net&lt;/a&gt; or &lt;a href=&quot;http://www.twitter.com/shapesmith&quot;&gt;@shapesmith&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What are the plans for the future? In roughly the following order I plan to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get the instructions up to date for users who want to run a local version.&lt;/li&gt;
&lt;li&gt;Introduce a workplace in the user interface. This will make building models a lot easier, and will include a grid system, along with point-and-click object placement. This will require a change in the representation of models in the database, which is why shapesmith.net doesn't have the saving of models enabled.&lt;/li&gt;
&lt;li&gt;1D and 2D geometry such as lines, curves, polygons, etc.&lt;/li&gt;
&lt;li&gt;1D to 2D operations and 2D to 3D operations such as extrusions.&lt;/li&gt;
&lt;li&gt;Introduce on-demand worker instances (i.e. use more worker nodes when more users are using the application).&lt;/li&gt;
&lt;li&gt;Introduce variables as a way of specifying model dimensions etc.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;There is a lot of work to do, but I continue to believe that a 3D modelling application in a browser that is accessible to everyone, an open to modification, is important to make the economic advantages of 3D printing available to a large audience.&lt;/p&gt;

&lt;p&gt;Stay tuned, and follow &lt;a href=&quot;http://www.twitter.com/shapesmith&quot;&gt;@shapesmith&lt;/a&gt; for updates.&lt;/p&gt;
</content>
  </entry>
  
</feed>
