Categories
coding development

Design x Metatooth r9

Release 9 of Design x Metatooth has been published!
Design x Metatooth r9

Design x Metatooth (pronounced “design by metatooth”) is a web-based 3D modeling application. Release 9 has now been published, check it out at design.metatooth.com

Release 9 adds Pick, Draw, Undo, and Redo functionality to the basic View (Rotate + Zoom) & Measure capabilities. On screen help is non-existent, please refer to the user documentation below.

User Documentation

Resize your browser width to 1000 pixels or more to access the menu bar.

Throughout, you may adjust the zoom using your mouse’s scroll wheel or middle button. Use the buttons along the menu bar to switch modes or issue commands. The keyboard shortcut for the mode/command is displayed to the right of the button name.

Rotate View – Press r to return to this rotate view mode. Rotate with the primary (typically left) button.
Measure – Press m to switch to measure mode. Click and drag with the primary button to get the 2D or point-to-point distance between two locations on screen. The measure tool can be reset any time within this mode. Switching to a different mode will remove the measure tool from the screen.
Pick – Press p to switch to the pick mode. Single click with the primary button to mark the intersection point below the cursor.
Draw – Press d to switch to the draw mode. Click and drag with the primary button to mark a line on the target mesh.
Undo – This command’s keyboard shortcut is z. Undo will remove the last object (pick point or line) made. Undo is available in Rotate View, Pick, and Draw modes.
Redo – This command’s keyboard shortcut is y. Redo will recover the last object removed by the undo command. Redo is available in Rotate View, Pick, and Draw modes.
Download – The download button in the upper right can be used to save the visible mesh to disk as a Binary STL file.

Categories
coding development

Design x Metatooth r8

Design x Metatooth r8

Design x Metatooth is a web-based 3D modeling application. Check it out for yourself at design.metatooth.com! r8 adds Measure functionality to the basic View (Rotate + Zoom) capabilities. On screen help is non-existent, refer to the user documentation below.

User Documentation

Resize your browser width to 1000 pixels or more to access the menu bar.

View – Press ‘v’ to return to view mode. Zoom with the scroll wheel or middle button. Rotate with the primary (typically left) button.
Measure – Press ‘m’ to switch to measure mode. Click and drag with the primary button to get the 2D or point-to-point distance between two locations on screen.
Download – The download button in the upper right can be used to save the visible mesh to disk as a Binary STL file.

Categories
programming

Google Firebase

I am developing a Vue.js application on Google Firebase. Firebase provides hosting, cloud functions, database, file storage, and an authentication module. My source code is on BitBucket and CI/CD is accomplished with BitBucket Pipelines and Bash scripts.

https://firebase.google.com/

I give Google Firebase “5 stars” for documentation and video tutorials. The authentication module makes getting started with users a snap.

The “NoSQL” database, Firestore, is also a breeze to get started with. So far, I’ve been using it directly, but I can see the need for a RESTful layer in between it and the client code. Firestore and it’s ilk (Redis, MongoDB) have their advantages, but providing a structured interface for multiple clients will reduce headaches down the road. It also decouples the client from the actual database technology. This seems to be a common pattern. I’ve used it in C++, Ruby, and JavaScript.

Firebase Cloud Functions gives a way to provide highly scalable endpoints. I haven’t explored Cloud Functions (AWS Lambda) too much. Conceptually, I view them as an Express.js application without the Express.js Firebase does offer triggers to database events, which feels like a stored procedure to me. I’m using them, but cautiously. It certainly helps to move business logic out of the clients.

Firebase provides hosting as well, accessed using their firebase-tools Node package. With my source in BitBucket, I’ve added BitBucket Pipelines. BP is typical of CI/CD services (Travis, Circle, Azure DevOps) with a YAML file to describe each pipeline.

How much will this thing cost? At the moment, $25/month for the Blaze plan on one Firebase project. It appears typical to use one project per stage.

I’d like to end this post with a link to the project, but we are  not ready to launch yet. Stay tuned!

Categories
coding

JavaScript

It’s a bit ironic that I spend so much time with JavaScript right now. My first programming gig was with JavaScript. It was the spring of 2000. I was placed by an agency at an office near Alewife. I walked to Central, took the T to Harvard, got off, bought the “Rhino” book at the Harvard Book Store, got back on, and read the book until Alewife. I walked into the office and started coding. The company published training materials. A colleague (worker?) in the office said about 11am, “Hey, you need to take your eyes off the screen every now and then!”.

It was a bit of a disaster but I delivered the software they needed. I even partook of a company-provided yoga class. I ran into the co-worker a few years hence, and he claimed they still used the software I developed!

Your code is not temporary. Tell me about it in the comments.

Categories
review

Smile Direct Club has a 3D Plan

My “Smile Transformation” 3D plan from Smile Direct Club is here! The e-mail arrived within 24 hours after I left their office.  Clicking through brought me to a 3D rendering of my current and planned tooth positions.  Very simple interface and looks slick.

All in JavaScript!

Ortho seems to be leading the way with the use of web technologies. Practice Management Software has been shifting to hosted services for some time (also known as, Software-as-a-Service). All other specialties are mired in the desktop. Do you agree?  Please share your thoughts in the comments.