Tinkercad needs a simple yet open-ended system for managing the properties of various things - users, documents, materials, shapes, etc. The operative word here is ‘simple'. Yet properly done, a system could also be quite powerful.
Users already have properties in the current site. Some relate the user’s profile, others to their account or their notification settings. Some property values are by their nature protected - like a user’s password. Documents also have some properties that are set using the Edit Grid button in the lower righthand corner of the canvas. The properties of shapes are manipulated using the Inspector and the standard on-canvas controls. These existing properties, as well as others there might be an argument for adding in future Tinkercad release, are intrinsic. New constructs like materials would similarly introduce properties intrinsic to each defined material.
Most CAD systems other than those that Autodesk considers targeted for “enthusiasts” include an open-ended Property Manager feature that allows users to associate name/value pairs with most CAD constructs. But the user experience of these Property Managers can be “noisy” and more complicated than K-12 students should be reasonably asked to tolerate.
Perhaps an appropriate interface for a Tinkercad Property Manager for shapes would be to simply add a ‘+’ control at the bottom of the Inspector pane. Clicking on this control would bring up a simple dialog used to define the properties of a Property. What properties would a property have? The same they have in a Shape Generator’s ‘params’ array. And these user-defined properties would be presented in the Inspector pane just as they have been for scripted shapes for some time. Similarly, a ‘+’ could be added to the Edit Grid Dialog, and to the Edit Profile experience.
Properties would have scope. User properties would be global to all a user’s assets — documents, materials, shapes, etc. Document properties would be global to all uses of materials and shapes of the document. A group of shapes might also have properties added at the group level. Copied shapes would have properties copied from the original shape. Duplicated shapes might share the values of the original. (So that a change in the value of a property of the original would be recognized by all duplicates.)
User properties named ‘Document.GridHeight’ and ‘Document.GridWidth’ would define the default height and width of every new document created by that user.
A property named ‘Material.SurfaceRoughness’ could be available to scripted shape code so that a Shape Generator named MetaHole generated a diameter that much larger, thus ensuring that the hole of 3D printed shape was large enough to allow a peg elsewhere in the document fit just right.