# 3DP Versioning
What goes into a full version number? What combination of inputs result in a distinct printed object?
- the gcode used
- CAD Model export version (see [[CAD for 3DP#Versioning]])
- Print Settings
- Filament setting
- the plating of the instances (quantity, placement, orientation)
- the plate on the heatbed
- filament roll used (color, age, moisture content, internal stresses if it was packaged wrong)
- the local conditions? temp and humidity in the printer enclosure?
- the exact state of the printer. Is the extruder gear full of chips? are the belts getting a little loose? do the ways need grease? what was the last maintenance done?
- the printer firmware version
- the slicer software version
The CAD model version is currently something I come up with. "v2", "v3" etc. Is there a better way to do it? If FreeCAD has some internal tracking of revision, should I use that? (Would I find a benefit in starting with an old physical print, tracing back to the model feature, and branching from that? maybe so)
- [ ] #project #inventory-mgmt #3dp-versioning does FreeCAD encode any hash into its revisions?
- [ ] #project #inventory-mgmt #3dp-versioning does FreeCAD integrate with `git` somehow?
The print settings can be saved in Prusa Slicer as either a "Configuration Snapshot" (in the Configuration menu) or as a "Preset" (dropdown in the toolbar of the Print Settings tab). Configuration Snapshot seems like a superset of the Preset. It includes
- PrusaSlicer version
- print (this looks like the name of a Preset)
- filament (the type of filament in use)
- printer (model, vendor, variant (such as for extruder))
- [ ] #project #inventory-mgmt #3dp-versioning can I save PrusaSlicer "Configuration Snapshot" files in a `git` repo?
- [ ] #project #inventory-mgmt #3dp-versioning can I save PrusaSlicer print "Preset" files in a `git` repo?
It would be nice to have an [[Inventory System]] that provisions QR-codes that I can stick on my filament rolls.
It would be double extra nice if that same system could also track the objects I print.