Command Line Interface (CLI)

After installing SimForge, the CLI can be accessed via the following commands:

# Run as package entrypoint
python3 -m simforge
# Run via installed command
simforge

Subcommands

The CLI provides a number of subcommands that leverage the underlying SimForge API. Each subcommand has its own set of options and arguments that can be accessed via the -h or --help flag.

simforge gen

Generate variants of registered assets based on the provided arguments (simforge gen -h).

Examples

Generate a single variant of a registered asset named "model1" (exported to ~/.cache/simforge):

simforge gen model1

Generate -n 2 variants, starting at random seed -s 100, of an asset named "geo1":

simforge gen -n 2 -s 100 geo1

Generate -n 3 variants for two different assets named "geo1" and "model2" (3 each) while exporting them to a file format with the extension -e stl:

simforge gen -n 3 geo1 model2 -e stl

Generate -n 5 variants of an asset named "geo2" in a custom output directory -o custom/cache:

simforge gen -n 5 geo2 -o custom/cache

Use a --subprocess to generate -n 8 variants of "model1":

simforge gen -n 8 --subprocess model1

Running in a subprocess is especially useful if the generator is non-compatible with the current environment. For example, Blender requires a specific version of Python that might differ from the system's default. The --subprocess flag thus allows the generator to run in a separate process with the embedded Python interpreter of the locally-installed Blender application.


simforge ls

List all registered assets in a tabular format.

❯ simforge ls
                SimForge Asset Registry
┏━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┓
┃ # ┃   Type   ┃ Package  ┃ Name   ┃ Semantics ┃ Cached ┃
┡━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━┩
│ 1 │ geometry │ package1 │ geo1   │           │        │
│ 2 │ geometry │ package1 │ geo2   │           │        │
├───┼──────────┼──────────┼────────┼───────────┼────────┤
│ 3 │ material │ package2 │ mat1   │           │        │
│ 4 │ material │ package3 │ mat2   │           │        │
├───┼──────────┼──────────┼────────┼───────────┼────────┤
│ 5 │  model   │ package1 │ model1 │           │        │
│ 6 │  model   │ package3 │ model2 │           │        │
└───┴──────────┴──────────┴────────┴───────────┴────────┘

Note: This subcommand requires the rich package to be installed (included in the cli extra)


simforge clean

Remove all generated assets that are cached on the system.

❯ simforge clean
[HH:MM:SS] WARNING  This will remove all SimForge assets cached on your system under /home/USER/.cache/simforge (X.YZ GB)
Are you sure you want to continue? [y/n] (n):