Monday, January 25, 2016

Thoughts About OnShape As a Tool For Makers, Artists and Educators

OnShape Parts Studio

I’ve heard so many educators talking about OnShape that I recently (January, 2016) spent a week working with the product to perform a detailed assessment for myself.

Just to name it, I’m an active participant in the Tinkercad community. Though wrapped in a cartoonish veneer, I view Tinkercad features to be sufficiently productive and complete to be well suited for teaching entry level 3D modeling and yet powerful and productive enough to use in the designing commercial products. That said, the site is occasionally frustratingly unresponsive. It also still lacks features that users desperately need -- like parametric capabilities, versioning and so forth. As such, I find myself in a continual search for a scalable, production quality, parametric, 3D design tool.

I should say up front that I experienced the OnShape team to be helpful, knowledgable and friendly. Though I really wanted OnShape to meet my needs, instead I found the tool to be quirky, slow to the point of unusable, lacking a number of minimally basic features, and presenting a very dated UX (User Experience) inherited from antiquity (i.e. Autocad and Solidworks).

Let me fill in some rather techie details about my evaluation on which the above conclusions are derived. 
  • Taken together, the help system, the video tutorials, the community forums and the support staff are all fantastic.
  • I liked the versioning features of the app. I found them to be well-thought out, easy to use, and complete enough to address all my requirements.
  • Though I didn’t use the collaboration features during my evaluation, I did read through the documentation to the point that I was left with the impression that they were, again, well-thought out, easy to use, and complete.
  • Flatly: OnShape is using the wrong geometry kernel to address the current and long-term needs to makers, artists, educators and even the mechanical engineers that are the products primary target. Those who know a bit about CAD may scoff at this statement. It’s based on the fact that OnShape’s geometry engine won’t allow it to easily accept and manipulate scanned volumes, imported meshes (like STL and OBJ files), nor scale to meet the real-world requirements of users today, and certainly not those that are coming. OnShape was founded by the same team that founded Solidworks, a well-respected commercial engineering 3D solid modeling tool. I believe that the choice of a BREP graphics engine will ultimately relegate the app to forever remain a niche product — even if the niche is large enough to survive. All I’m saying that their product didn’t meet my requirements as an educator, maker and artist. 
  • OnShape is billed as a professional grade mechanical engineer tool. Yet it couldn’t handle the same real-world design that I’d brought over from Tinkercad -- a tool seemingly designed for kids. 
  • Simply moving the mouse across a OnShape Part Studio canvas with only a few objects in place causes the mouse to jump around to the point that even the simplest UX tasks like changing focus in a textedit box of a dialog box becomes almost impossible. I believe this is due to background javascript code running whenever the mouse happens to fly over an object. These background processes seem to be causing the app to temporarily stop tracking mouse movements.
  • The UX calls upon users to interact far too often with dialog boxes rather than direct manipulation controls.
  • Though parametric capabilities have recently been added to OnShape -- the feature I was most interested in exploring in OnShape -- I experienced the UX for these capabilities to be quirky and rudimentary. 
  • The system appears to not include basic data management of parametric values beyond individual single-value variables. Support for multi-value variables is missing, as is the ability to import data values, create spreadsheet-like data libraries, or the ability to create data value reference lookups.
  • The system lacks refactoring support to address even basic use cases — such as renaming a variable.
  • Requiring that all 3D solids and surfaces be derived from 2D sketches, while still common in many traditional MCAD systems that evolved from 2D ancestors, creates a huge drag on user productivity and results in a level of complexity that would likely limit OnShape's use to high school and college level engineer students. That a “new” “out of the box” application like OnShape would bring that UX forward is a significant statement about the mindset of the founders. I get the thinking that resulted in that UX being chosen given all the other, lower-level decisions that have been made. But it results in a massive loss of productivity.
  • I found system availability of the application to be flawless during my week of use. Yet during my evaluation a number of real-world boolean operations (sort of like a Tinkercad group operation) ate up so many CPU cycles on the server that the graphics engine eventually gave up without notice after I’d wasted 15 minutes waiting for the operation to complete. I fear that OnShape will ultimately face many of the same challenges that other calorie-rich, latency-intolerant applications have struggled to overcome. I would love to see whether the OnShape team is able to create a service that keeps their users productive under heavy user loads.
  • The current system lacks a grouping feature. The union boolean doesn’t support unification of spatially disjoint part bodies.

Wednesday, January 21, 2015

The Tinkercad Align & Smart Duplicate Tools

Daisy -- Bob Krause

All drawing students, whether working with a pencil in 2D or a mouse in 3D, must learn to appreciate the significance of the spacial relationships that exist between shapes in a drawing. Proportions, placement and perspective all play roles in creating a sense of the space being three-dimensional and conveying important messages about how objects are related.

Students use Tinkercad in my 3D modeling class. I think the metaphor it offers, of shapes adding volume and holes subtracting volume, is well suited for students’ initial 3D studies. Anyone who has sat in on even one of my sessions can tell you that the Tinkercad function that I promote most often is the Align tool, followed closely by the Smart Duplicate feature. The Align tool offers rigor to the process of placing objects relative to one another. I suggest that it should be the beginning and many times the end of the placement process.

Smart Duplicate, which is sometimes referred to as Patterned Duplicate, is used to repeatedly duplicate the previous generation of an object or selection of objects, along with a set of modifications. Let me show you what I mean.

Say I want to design a daisy. I'd begin by arranging a Cone and a Sphere to create a single flower petal. Like this…

From this simple beginning, I'd use Tinkercad’s Smart Duplicate feature. I'd duplicate the petal shape then rotate and reposition the duplicate so that it lays beside the original. Like this…

Now, without unselecting the duplicate pedal, I use the Duplicate command 10 more times.

I turn all my pedals into a single group, add a yellow Sphere, Aligned along all 3 axis, and the bloom of the flower is done.

Yes, we can fancy up our flower a bit by adding a stem. One that suits our modest purposes might be grown using a Torus Thin shape and a few Box holes arranged like this before grouping...

Center the top of our stem around the center of the Sphere, and we have a vignette of a Daisy. (You’ll catch me referring to a design that looks good yet isn’t easily 3D printed as a vignette when the object is without a context or a scene when accompanied by surroundings.)

This design is the subject of an Inventor Studios Tinkercad Tutorial which is available for use in your classroom.

Monday, November 17, 2014

Release Notes: FlexMesh 2.1 Snap Together Flexible Chainmail Mesh

FlexMesh Dodecahedron – Bob Krause

FlexMesh is a set of compact 3D shapes that can snap together to create colorful, flexible and possibly very large 3D printed objects. FlexMesh 1.0 was released on Thingiverse this past August. This initial version was an exercise Cole, an instructor at a3D modeling camp I ran last summer, and I worked on to demonstrate ways we might overcome some of the limits of 3D printing today. The flexibility of FlexMesh 1.0 objects came from the use of pins. But I found that these pins and the slots they slide into are somewhat cumbersome to design and build with.
FlexMesh 2.0 was released last month and immediately became a featured design on the Thingiverse home page. FlexMesh 2.0 is much easier to work with and offers greater versatility. The pins have given way to nubs that snap into holes to form hinge-like joints that connected pieces can pivot around. Many interesting, colorful and large objects have already been built using FlexMesh 2.0 -- with more designs on the way.

This post contains the release notes for FlexMesh 2.1. If what you've read so far about FlexMesh doesn't interest you, then you might want to turn your attention elsewhere. But if you're interested in learning details about FlexMesh 2.1, then please read on.

If you have any experience playing with the 2.0 kit then you've likely noticed that it can sometimes be hard to snap pieces together, while other times you find that the fit of connectors to be so loose that some pieces come apart too readily. This becomes a real problem when you drop a bucket of FlexMesh in the center of a group of kids because they either can't snap the pieces together or become frustrated that their Minecraft creature keeps falling apart.

Octahedron – Bob Krause 
Getting The Best Connection

Experienced has shown that there's so much variability of printed pieces using different printer/material/slicer combinations that there's no single connector design that prints well in all situations. So the 2.1 release includes no fewer than 10 slightly different variations of connectors. The difference in each is the space between the nubs. The nubs of the shape named FlexMesh2.1Sub0.stl are the closest together, while the shape with the nubs furthest apart is FlexMesh2.1Sub9.stl. For reference, the shape named FlexMesh2.1Sub5.stl is pretty equivalent to FlexMesh2Sub.stl, and FlexMesh2.1Sub9 is the same as FlexMesh2SubWide.stl.

If you were happy with FlexMesh 2.0 connectors? Then just use the #5 sub shape in version 2.1. Otherwise do some test prints of various Sub shapes to find the one that works best for you.

Note: Here's how to distinguish which printed connector variation you're holding... The SubWide shape has a subtle 'W' on top. Each of the Sub's released in the 2.1 release has a number embossed on one side between nubs. If you don't see either of these markings then you probably have an original Sub.

Important: For best results, be aware of the printer, filament and slicer combination you use for fabricating each batch of Subs and Mains. Take written notes if you think that'll help. Which spool of filament you use seems to be the greatest factor. PLA produces pieces that are ever so slightly smaller than ABS. "Chewy" ABS filaments are less predictable than that of higher quality spools.

Grand Monopoly – Bob Krause 
A Consistent Length For Each Side
Perhaps the greatest flaw in the 2.0 design is that the length of 3-sided shapes, Tri's, and 4-sided Quads is different. This creates a noticeable bulge in objects built using both shapes because the Tri pieces stick out further than Quads.

This inconsistency has been corrected in FlexMesh 2.1. But doing so requires that the side length of 2.1 Tri's and Quad's be different than their 2.0 counterparts. Quads are 1mm wider, while Tri's are about 0.5mm thinner. Not to worry, FlexMesh 2.0 and 2.1 are still fairly compatible for most simple projects. That's why the version 2.1 is being released as an update to what was the original FlexMesh 2.0 Thingiverse design.

Cuboctahedron – Bob Krause
Filleted Inner Edges Of Main's
Some people have had problems with "blooming" of the first layer of printed FlexMesh pieces. As any 3D printing tutorial points out, the first layer of a print is the most important determinant of the success or failure of the print job. It's important that the filament laid down for the first layer be pressed down firmly on the build platform so that the piece adheres through to job completion. Bloom is the effect that occurs when the outer bead of material is pushed so far outwardly so as to deform the overall shape of that initial layer of the piece. This was identified as an issue for the inner edge of Main shapes because it can cause the full rotational range of connected Sub's to be reduced to the point that two adjacent Main pieces can't rotate the full 180 degrees.

This problem has been addressed in FlexMesh 2.1 by adding a fillet to this inner edge. Of course, the fillet was added to both top and bottom edges.

New Shapes
FlexMesh 2.1 includes new 5-sided Penta and 6-sided Hexa Main shapes, which have the same side lengths and filleted inner edges as the updated Tri and Quad shapes.

Cuboctahedron – Bob Krause
A New Shape Family
An entirely new family of FlexMesh Main shapes have been added as part of FlexMesh 2.1. These shapes, which can accept as few as 2 to as many as 6 connectors, are more rounded than those in the original family. Unlike the original family of Mains, the diameter of each rounded shape increases with the number of connectors it accepts. This lack of a standard side length makes sense as the new round shapes don't have sides. The profiles of rounded shapes are very different than the originals when both are viewed from above. Because of these differences, objects built using rounded shapes also have a different appearance. Some connection patterns result in a wide gap between pieces align in one direction. Other patterns result in fairly tight fits between Mains.

Print a batch of rounded pieces to play with. Early users of these shapes have found the 2-sided Duo to be a particularly interesting and useful element to build off of.

Note: People who've printed the rounded family of shapes report that platform adhesion of Duo pieces is more of a challenge than is the case with other FlexMesh shapes. To optimize success for printing Duo's be sure that the build platform is "fresh" and level, and that nozzle clearance is properly calibrated.

Duo Band – Bob Krause
Comments & Questions
The best place to submit FlexMesh 2.x comments or questions is here on Thingiverse.

Saturday, November 15, 2014

Tinkercad Alternatives?

Rascal The Dog – Lucie

A question was recently raised about whether there are any alternatives to Tinkercad as a classroom 3D modeling tool. This is a very good question.

The reality is that Tinkercad currently occupies a “footprint” in the market for 3D modeling software that addresses a significant piece of the requirements of makers, teachers and students. If Tinkercad weren’t available, didn’t occupy this footprint, then I’m quite certain that there would be some other product in the market today. Mind you, I don’t believe that Tinkercad’s presence entirely precludes competitive products, but the space that Tinkercad takes up incrementally reduces the size of the opportunity left for others in the market.

In my view, the key traits that make Tinkercad stand out as a uniquely well suited solution for makers and educators are:
  • Shapes add volume, holes subtract volume
  • The ability to group and ungroup shapes, holes and groups
  • An approachable stylesheet with minimal noise (Translated: a good look without too much information that confuses users)
  • A means to programmatically design and configure shapes (Though the current Shape Generator tool is fatally flawed in so many ways.)
The biggest hole in Tinkercad's current feature set is the inability to parametrically define and relate shapes.

I’m always on the lookout for applications to bring into classrooms as full or even partial replacements for Tinkercad. I’ve yet to find a viable alternative. All the other “mainstream” modeling applications are too noisy, don't support "ungrouping" or offer metaphors inappropriate for young students new to 3D modeling.

I’m sure Autodesk doesn’t want to hear this, but I think everyone would benefit from some real competition in these maker and educational markets. — Tinkercad included.

Wednesday, November 12, 2014


Tinkercad Is Down – Autodesk

This morning the following letter was sent to Autodesk CEO Carl Bass, CTO Jeff Kowalski and several leaders of the 123D applications teams who are responsible for the Tinkercad product and engineering efforts. Tinkercad is a central component in the toolchain of schools' 3D modeling and printing curriculum. I encourage everybody with an opinion about the state of the site to constructively discuss your requirements and expectations and the impact the disruptions have had on your classrooms and your long-term planning for 3D curriculum.

Voice your support for Autodesk improving Tinkercad reliability, responsiveness and feature set by using the #FixTinkercad Twitter hashtag.

I was a Tinkercad user a year or so before Autodesk picked up stewardship of the site in the spring of 2013. I’ve been an active user in my own work and as a 3D modeling instructor at various schools in the East Bay. Guillermo (Melantoni, 123D project Line Manager), I’ve brought you into my classrooms and into my lab early on to show you how my students are using the tool. I’ve been to your offices several times to meet with both product and engineering teams to discuss the product’s many strength and crippling weaknesses. 

It was around this time last year that the state of the site had deteriorated to such an extent that I publicly called out the Autodesk team proclaiming, Tinkercad is Dead, because the site was at that point for all intents and purposes completely unusable. I was a lone voice in that discussion because few teachers were using the site as centrally in their curriculum as I was. Sure enough, fully 2/3 of my students who were affected by those failures chose alternative activities and never returned to 3D modeling. It’s been relayed to me that however opinionated I was, this frank online discussion contributed to Autodesk committing some additional resources and to the decision to make some changes in the development team. This eventually led to the migration of the application stack over to a large public cloud. Responsiveness improved markedly in the spring as a result, though many significant usability issues have still never been addressed.

Now, 10 months later and smack in the middle of another academic semester in which 100’s, if not 1,000's, of classrooms are now reliant on the site as a central tool of their current curriculum, the site has once again been left completely unreliable for going on 3 weeks with no end of the troubles in sight. The students, teachers and districts now left to cobbler together replacement curriculum in real time are the same stakeholders Autodesk has actively pitched Tinkercad to during the past year as an ideal tool for classroom use. Many are us are Tinkercad users because Autodesk encouraged us to do so. 

If one were to not read user complaints and only focus on the hype and spin emanating from the 123D team that Tinkercad is managed by, it might sound like the site is virtually flawless and that users are all but dancing in the streets. Yet it’s my sense and the sense of other teachers and administrators I’ve talked to, that Autodesk doesn’t fully appreciate the full extent of people’s frustration with Autodesk’s stewardship of the site. Stating the obvious, a web application is a fundamentally different animal than a native application. Autodesk may not fully appreciate the significance of these differences or the reasonable expectations and requirements schools have for the site even though they don’t currently pay for students' use of the tool. 

I also don’t think Autodesk realizes the negative impact users' Tinkercad experiences are having on the company’s long-term objectives at the intersection of the maker and education markets and their impact on Autodesk's brand overall. Though I appreciate Autodesk’s strategy for expanding your presence in these markets, I think it prudent that you reassess your execution and adjust your tactical plan to take into account the impact ongoing conditions will have on your long-term prospects. As an aspiring stakeholder in these communities, I would also ask you to consider the impact your missteps are having on the makers, students and schools you serve. 

- Bob Krause
Berkeley, CA

Saturday, October 4, 2014

Operating 3D Printers As Small Factories

Frog and Fly – Ollie
The job flow running through a 3D printer or set of printers should be managed using processes like those used in small-scale factories or other job shops that handle small runs of custom piece work. The requirements for this job handling process includes a readily accessible and easy to understand form customers fill in to unambiguously describe the details of the job being submitted. The process must also provide the printer operators with an interface that enables them to process the job flow efficiently, optimize the quality of the objects being produced, keep costs down and track invoicing and payment for completed work.

In my presentations to teachers and administrators, I've demonstrated a spreadsheet that I've evolved for tracking 3D print jobs. I've also demonstrated a web form that my students are using to submit their jobs for printing and the complete set of Google Sheets -based backend tools used to process this work flow. I've used this new package of workflow tools to support a camp that I ran this past summer, in my 3D modeling classes, and in professional development seminars that I run at schools across the Bay Area. When taken together, the tools have so far been used for print production amounting to about 50kg of filament. In the last few months have I been able package up this set of production tools for others to use in their environments.

The web form that my customers, a.k.a. students, use to submit print jobs is based on a wonderful product called JotForm. After you create a free JotForm account you can create a copy of this form using the template I've made public here. As jarring as the form might feel the first time you see it in all it's yellow glory, this unique and unforgettable look helps students, some as young as 3rd graders, remember the job submission process so that I only have to explain it to them once. The "Show Instructions" checkbox near the top of the form is available for those that need their memories refreshed. As simple as the form is, it's complete enough to support single and dual extrusion jobs using any raw material and any configuration of outer shells and infill ratio.

An important feature of JotForm is what they call "integrations". These are processes that can be invoked when a form is submitted. I use the Google Sheets integration. This causes a fresh row to be added to a Google Sheets workbook for every job submitted. The Google Sheets integration wizard that is used to make this connection is very straightforward. But JotForm's behind-the-scenes code that adds these rows to the spreadsheet works by overwriting the workbook every time. This means that this workbook can’t be modified with custom calculations or additional sheets. Instead, IMPORTRANGE function of Google Sheets is used to synchronize these rows of job data into a range of cells in a separate tracker workbook.

I don’t need to fill out a web form when I set up a print job for myself. So this JotForm-based workflow is used only in an educational setting. The tracker workbook that I developed for tracking production of student jobs can be found here. The first sheet, named Submissions, uses Google’s IMPORTRANGE function in Columns F and beyond to import the data taken from the JotForm-generated workbook. Columns A to E of the Submissions sheet are used by the printer operator to denote the state of each job as to flows through the production process. (Note that the workbook referred to by the first argument of IMPORTRANGE must be changed to refer to the Google workbook that YOUR JotForm populates.)

Notice that column E is titled ‘Paid”. This workbook supports the use of 3DBucks. Teachers use 3DBucks to optimize printer demand and motivate students to maximize their progress through each lap of the innovation cycle. 3DBucks are credits that students must spend in order to print something. The cost of each print job is based on the amount of filament it consumes. Available 3DBucks denominations are 1 gram, 5 grams, 10 grams, 25 grams, and the special Dual credit. Students may be given Stipends, which are some 3DBucks given at the start of the semester, when a project is assigned or at some other point that makes sense in your classroom. Some classes use themed competitions and award the students who succeed the furthest beyond their range. I reserve dual passes for “amazing” designs that are best rendered in two-color print jobs. The Balances, Stipends, Awards and Prints sheets of the tracker workbook are used to track the flow of credits in a 3DBucks -based economy.

My tracker workbook can be used as-is, or as a starting point for other tracking work flows better suited for small to mid-sized industrial, retail or creative environments. Have at it.

Friday, May 2, 2014

3DBucks – A Classroom Currency For The 3D Age

3D Bucks – Bob Krause

Classroom 3D printing is expensive and time-consuming. There's always more demand than capacity. It's the slowest step in the innovation cycle. Yet all too often kids choose to print more versions of their designs than necessary rather than waiting to submit a job only once it's been sufficiently refined and a print is necessary in order to test and confirm their working assumptions.

Another common classroom challenge is how to motivate students to move beyond their comfort zones and how to reward them for doing so. 

Forget Bitcoin. We’re 3D’ers! So we use 3DBucks to optimize printer demand and motivate students to maximize their progress through each lap of the cycle. 3DBucks are credits that students must spend in order to print something. The cost of each print job is based on the amount of filament it consumes. Available denominations are 1 gram, 5 grams, 10 grams, 25 grams, and the special Dual credit. The cost of a job that uses both extruders on the dual-headed printer is based both on the amount of filament it consumes as well as a Dual credit. 

You can give students some 3DBucks at the start of the semester, when a project is assigned or at any other point that makes sense in your classroom. 3DBucks encourage healthy saving, spending and design habits.They may also be used as rewards for good behavior, perseverance, helping others, winning a design contest, or any other deserving achievement.