A computer-implemented method for generating and using functional data containers for designing, visualizing, and manufacturing a customizable product, the computer-implemented method comprising:
- initiating, by a computer system, an application for generating functional data containers (ZIGs) and causing reading a list of resources that includes ZIGs and images;
- wherein the reading includes reading each set of product+manufacturing instructions from a set of product+manufacturing instructions;
- generating by the computer system, using product definition information from each of the sets of product+manufacturing instructions, a proxy representation, of proxies, of each set that defines a transformation translation mechanism;
- combining, by the computer system, the proxies and images into a file and saving the file;
- in response to determining that the file is used by a user, opening the file to allow editing the proxies, and saving the file with a set of product+manufacturing instructions once the editing the proxies is complete;
- in response to determining that the file is used by another software application, opening the file in the another software application to allow editing the proxies, and saving the file with the set of product+manufacturing instructions once editing the proxies is complete;
- wherein the another software application uses transform tools available in the another software application to transform proxy objects;
- reading, by the computer system, the file with the product+manufacturing instruction files used to generate the proxies;
- encapsulating the images and product+manufacturing instruction sets in a new file;
- and saving the new file;
- wherein the new file contains image data and product+manufacturing instructions for all specified products;
- receiving a container ZIG file comprising at least one geometry object and associated metadata;
- identifying key-value pairs associated with the container ZIG file for customization of the at least one geometry object;
- embedding or referencing additional ZIG content into the container ZIG file by:
- for embedding, inserting contents of an external ZIG file into the hierarchy of the container ZIG file, wherein the contents comprise a combination of geometry objects, and merging any resources from the external ZIG file into the container ZIG file's resources with automatic scoping and renaming to resolve conflicts;
- for referencing, creating a placeholder geometry within the container ZIG file, referred to as a symbol, that references another self-contained ZIG file, wherein the symbol provides a key for scoping, layer information, and default transformation for placement and scale;
- applying a scoping mechanism to the key-value pairs to maintain uniqueness of the key-value pairs when combining multiple ZIG objects within the container ZIG file, wherein the scoping mechanism prefixes a scope name to a key name separated by a colon;
- transforming the additional ZIG content within the container ZIG file based on the scoped key-value pairs to adjust position, scale, and rotation for realistic placement within a visualization;
- generating a visualization of the container ZIG file with the embedded or referenced additional ZIG content using a rendering engine configured to match lighting and shadows for a photorealistic effect;
- and
- retaining separate manufacturing data based on original specifications of the geometry objects for manufacturing purposes, wherein the manufacturing data are distinct from the visualization data.