# fakeshot
A simple tool that generates dummy EXR files for VFX projects. Useful when you need placeholder renders that follow proper naming conventions.
## What it does
Creates fake EXR image files organized in the typical VFX directory structure:
```
project/scene/shot/task/version/project_scene_shot_task_version.frame.exr
```
Each EXR has the filename written in the center so you can tell what's what.
## Install
```bash
pip install fakeshot
```
Or even better
```bash
pipx install fakeshot
```
## Basic usage
Just run it and it'll create some sample files in an `./out` folder:
```bash
fakeshot
```
## Customize it
You can change most things with command line options:
```bash
fakeshot \
--show "myproject" \
--scene "010,020" \
--shot "0010,0020,0030" \
--task "comp,light" \
--start_frame 1001 \
--end_frame 1024
```
Or use a JSON template file:
```bash
fakeshot --template my_template.json
```
To see what a template looks like:
```bash
fakeshot --sample-template
```
### Custom naming patterns
You can change how files are organized and named using these options:
- `--path-pattern` - directory structure (default: `{show}/{scene}/{shot}/{task}/{version}`)
- `--file-pattern` - filename format (default: `{show}_{scene}_{shot}_{task}_{version}.{frame}`)
For example, if you want a flatter structure:
```bash
fakeshot --path-pattern "{show}/{shot}" --file-pattern "{shot}_{task}.{frame}"
```
This would create:
```
myproject/0010/0010_comp.1001.exr
myproject/0010/0010_comp.1002.exr
```
## Options
- `--out` - where to save files (default: ./out)
- `--show` - project name
- `--scene` - scene names (comma separated)
- `--shot` - shot names (comma separated)
- `--task` - task types (comma separated)
- `--version` - version string
- `--start_frame` / `--end_frame` - frame range
- `--width` / `--height` - image dimensions
- `--verbose` - more output
- `--file-pattern` - how to render the filename
- `--path-pattern` - how to render the path of the filename
## Why?
Sometimes you need a quick, throwable bunch of EXR files to test tools or directory structures.
The EXR files are just gray images with the filename in the middle, but they're real EXR files that should work with most tools.
Raw data
{
"_id": null,
"home_page": "https://github.com/sisoe24/fakeshot",
"name": "fakeshot",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": "vfx, exr, openexr, pipeline, testing, dummy, placeholder, renders, shots",
"author": "virgilsisoe",
"author_email": "28490646+sisoe24@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/ff/f5/636f077ebef687b0dc5dd1507b501b0a06911bc6f1ccd3bc982c7a1b6cd4/fakeshot-0.3.2.tar.gz",
"platform": null,
"description": "# fakeshot\n\nA simple tool that generates dummy EXR files for VFX projects. Useful when you need placeholder renders that follow proper naming conventions.\n\n## What it does\n\nCreates fake EXR image files organized in the typical VFX directory structure:\n\n```\nproject/scene/shot/task/version/project_scene_shot_task_version.frame.exr\n```\n\nEach EXR has the filename written in the center so you can tell what's what.\n\n## Install\n\n```bash\npip install fakeshot\n```\n\nOr even better\n```bash\npipx install fakeshot\n```\n\n## Basic usage\n\nJust run it and it'll create some sample files in an `./out` folder:\n\n```bash\nfakeshot\n```\n\n## Customize it\n\nYou can change most things with command line options:\n\n```bash\nfakeshot \\\n --show \"myproject\" \\\n --scene \"010,020\" \\\n --shot \"0010,0020,0030\" \\\n --task \"comp,light\" \\\n --start_frame 1001 \\\n --end_frame 1024\n```\n\nOr use a JSON template file:\n\n```bash\nfakeshot --template my_template.json\n```\n\nTo see what a template looks like:\n\n```bash\nfakeshot --sample-template\n```\n\n### Custom naming patterns\n\nYou can change how files are organized and named using these options:\n\n- `--path-pattern` - directory structure (default: `{show}/{scene}/{shot}/{task}/{version}`)\n- `--file-pattern` - filename format (default: `{show}_{scene}_{shot}_{task}_{version}.{frame}`)\n\nFor example, if you want a flatter structure:\n\n```bash\nfakeshot --path-pattern \"{show}/{shot}\" --file-pattern \"{shot}_{task}.{frame}\"\n```\n\nThis would create:\n\n```\nmyproject/0010/0010_comp.1001.exr\nmyproject/0010/0010_comp.1002.exr\n```\n## Options\n\n- `--out` - where to save files (default: ./out)\n- `--show` - project name\n- `--scene` - scene names (comma separated)\n- `--shot` - shot names (comma separated)\n- `--task` - task types (comma separated)\n- `--version` - version string\n- `--start_frame` / `--end_frame` - frame range\n- `--width` / `--height` - image dimensions\n- `--verbose` - more output\n- `--file-pattern` - how to render the filename\n- `--path-pattern` - how to render the path of the filename\n\n## Why?\n\nSometimes you need a quick, throwable bunch of EXR files to test tools or directory structures.\n\nThe EXR files are just gray images with the filename in the middle, but they're real EXR files that should work with most tools.\n",
"bugtrack_url": null,
"license": null,
"summary": "Generate dummy EXR files for VFX pipeline testing.",
"version": "0.3.2",
"project_urls": {
"Homepage": "https://github.com/sisoe24/fakeshot",
"Issues": "https://github.com/sisoe24/fakeshot/issues",
"Repository": "https://github.com/sisoe24/fakeshot"
},
"split_keywords": [
"vfx",
" exr",
" openexr",
" pipeline",
" testing",
" dummy",
" placeholder",
" renders",
" shots"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0bcaadabb5a99a6fbfcc9a10ff2dde02b133167e4bc33273de2728d51b556155",
"md5": "eaec2c4b17009f6223fa221487f45de2",
"sha256": "e41450cf0f7590f3f014ddc1a6d71b6a4bf6b3e8f1ff760a0e9d49ce3b383aa8"
},
"downloads": -1,
"filename": "fakeshot-0.3.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "eaec2c4b17009f6223fa221487f45de2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 8812,
"upload_time": "2025-07-08T18:47:06",
"upload_time_iso_8601": "2025-07-08T18:47:06.969073Z",
"url": "https://files.pythonhosted.org/packages/0b/ca/adabb5a99a6fbfcc9a10ff2dde02b133167e4bc33273de2728d51b556155/fakeshot-0.3.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fff5636f077ebef687b0dc5dd1507b501b0a06911bc6f1ccd3bc982c7a1b6cd4",
"md5": "e561babd816048a295863ccf46d3e040",
"sha256": "e08a06608332b9b831919531a9323095702c3a367e0a1e8a0c3218a270976963"
},
"downloads": -1,
"filename": "fakeshot-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "e561babd816048a295863ccf46d3e040",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 6363,
"upload_time": "2025-07-08T18:47:07",
"upload_time_iso_8601": "2025-07-08T18:47:07.980420Z",
"url": "https://files.pythonhosted.org/packages/ff/f5/636f077ebef687b0dc5dd1507b501b0a06911bc6f1ccd3bc982c7a1b6cd4/fakeshot-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 18:47:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sisoe24",
"github_project": "fakeshot",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "fakeshot"
}