Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…pypi
  • Loading branch information
manuelkoester committed Aug 6, 2023
2 parents bd72632 + 21fca87 commit 269d2a9
Show file tree
Hide file tree
Showing 38 changed files with 408 additions and 464 deletions.
40 changes: 26 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
<p align="center">
<img src="media/quiltix-logo-full.svg" height="170" />
<img src="media/quiltix-logo-full.svg#gh-dark-mode-only" height="170" />
<img src="media/quiltix-logo-full-light-mode.svg#gh-light-mode-only" height="200" />
</p>

----

<div align="center">

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/PrismPipeline/QuiltiX/LICENSE)
[![Version](https://img.shields.io/github/v/release/PrismPipeline/QuiltiX/releases)](https://github.com/PrismPipeline/QuiltiX/releases/latest)
[![Version](https://img.shields.io/github/v/release/PrismPipeline/QuiltiX)](https://github.com/PrismPipeline/QuiltiX/releases/latest)
</div>

QuiltiX is a graphical node editor to edit, and author [MaterialX](https://materialx.org/) based materials of 3D assets. It includes a viewport based on [OpenUSD](https://www.openusd.org/release/index.html)'s [Hydra](https://openusd.org/release/glossary.html#hydra), which enables viewing your assets in any renderer supporting both Hydra & MaterialX.
Expand All @@ -19,6 +20,7 @@ QuiltiX is a graphical node editor to edit, and author [MaterialX](https://mater
- [Requirements](#requirements)
- [Installation](#installation)
- [From PyPi](#from-pypi)
- [From Zip](#from-zip)
- [From Source](#from-source)
- [Running QuiltiX](#running-quiltix)
- [Running QuiltiX using hython](#running-quiltix-using-hython)
Expand All @@ -27,6 +29,7 @@ QuiltiX is a graphical node editor to edit, and author [MaterialX](https://mater
- [Arnold](#arnold)
- [Karma](#karma)
- [Adding custom MaterialX Node definitions](#adding-custom-materialx-node-definitions)
- [Platform support](#platform-support)
- [Contributing](#contributing)
- [License](#license)

Expand All @@ -40,10 +43,18 @@ QuiltiX requires Python 3.9+ as well as compiled versions of USD and MaterialX.
pip install QuiltiX
```

If you additionally require pre-built binaries for MaterialX & USD:
If you additionally require pre-built binaries for MaterialX & USD we currently provide these for Windows.
On Linux you need to provide your own binaries for now. Here are linked instructions for [MaterialX](https://github.com/AcademySoftwareFoundation/MaterialX/tree/main#quick-start-for-developers) & [OpenUSD](https://github.com/PixarAnimationStudios/OpenUSD/blob/release/BUILDING.md)
```shell
pip install QuiltiX[cppdeps]
pip install QuiltiX
pip install git+https://github.com/PrismPipeline/[email protected]
pip install git+https://github.com/PrismPipeline/[email protected]
```

### From Zip
For Windows a zip containing QuiltiX and all required dependencies can be downloaded from [here](https://prism-pipeline.com/quiltix/).
Just extract and execute the `QuiltiX.bat`

### From Source
1) Clone the repository

Expand All @@ -57,31 +68,30 @@ cd QuiltiX
This will install the base python dependencies, excluding any development dependencies, MaterialX & USD

```
pip install -e .
pip install .
```

<details>
<summary>Additional install options</summary>

If you want to just install everything (Python dependencies, dev dependencies, MaterialX & USD)
If you want want to contribute it is recommended to install QuiltiX in [development/editable mode](https://setuptools.pypa.io/en/latest/userguide/development_mode.html).
It is also recommended to also install QuiltiX's dev dependencies.
```
pip install -e .[all]
pip install -e .[dev]
```

These are the additional install options available
```
pip install -e .[usd,materialx,dev]
```
For more information see [pyproject.toml](pyproject.toml)
</details>


## Running QuiltiX

```
python -m QuiltiX
python -m QuiltiX
```

Or if you installed QuiltiX via zip you can execute the `QuiltiX.bat` after extracting.

### Running QuiltiX using hython

QuiltiX can be run from `hython`, which is Houdini's python executable. This way you can use Houdini's built USD and MaterialX and don't have to worry about providing your own.
Expand All @@ -102,7 +112,7 @@ Or if you have a virtual environment
```shell
cd QuiltiX_root
/path/to/venv/Scripts/activate
set PYTHONPATH=%PYTHONPATH%;%VIRTUAL_ENV%;./src
set PYTHONPATH=%PYTHONPATH%;%VIRTUAL_ENV%/Lib/site-packages;./src
/path/to/hython.exe -c "from QuiltiX import quiltix;quiltix.launch()"
```
> Note that currently both the Storm as well as HoudiniGL render delegates do not seem to work in QuiltiX when being launched from hython.
Expand All @@ -125,7 +135,7 @@ Overview over the most important Environment Variables:

**_What is a Hdyra Delegate?_**
"Hydra Render Delegates are bridges between the Hydra viewport and a renderer. They were created by Pixar as part of the Hydra renderer used in usdview. The Hydra Render Delegate system allows the ability to switch out the backend renderer for the viewport data in Hydra. [...]"<sup>[[src]](https://learn.foundry.com/katana/dev-guide/Plugins/HydraRenderDelegates/Introduction.html#what-is-a-hydra-render-delegate)</sup>
"Hydra Render Delegates are bridges between the Hydra viewport and a renderer. [...] The Hydra Render Delegate system allows the ability to switch out the backend renderer for the viewport data in Hydra. [...]"<sup>[[src]](https://learn.foundry.com/katana/dev-guide/Plugins/HydraRenderDelegates/Introduction.html#what-is-a-hydra-render-delegate)</sup>

The [Storm Hydra Delegate](https://openusd.org/dev/api/hd_storm_page_front.html) by Pixar is both shipped with USD and enabled per default in QuiltiX.

Expand Down Expand Up @@ -176,6 +186,8 @@ After opening QuiltiX the active Hydra delegate can be changed in the "View" ->

To add custom MaterialX node defintions they can be added by adding the location of the node definition files to the `PXR_MTLX_PLUGIN_SEARCH_PATHS` environment variable.

## Platform support
QuiltiX has been developed with all platforms in mind, but has been developed on Windows. If you see any issues on another platform please open up an issue.

## Contributing

Expand Down
Binary file modified media/QuiltiX.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
167 changes: 167 additions & 0 deletions media/quiltix-logo-full-light-mode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 14 additions & 26 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "QuiltiX"
version = "0.2.0"
version = "0.4.0"
description = "MaterialX Graphical Node Editor"
readme = "README.md"
license = {file = "LICENSE"}
Expand All @@ -9,7 +9,7 @@ keywords = ["openusd", "materialx"]

authors = [
{name = "Manuel Köster", email = "[email protected]" },
{name = "Richard Frangenberg", email = "contact@prism-pipeline.com" },
{name = "Richard Frangenberg", email = "richard@prism-pipeline.com" },
]

classifiers = [
Expand All @@ -27,51 +27,42 @@ dependencies = [
"PyOpenGL",
"PyOpenGL_accelerate",
# TODO
"NodeGraphQt @ git+https://github.com/manuelkoester/NodeGraphQt.git@develop",
"NodeGraphQt-QuiltiX-fork",
# "NodeGraphQt @ git+https://github.com/manuelkoester/NodeGraphQt.git@develop",
]

[tool.setuptools.packages.find]
where = ["src"]

# TODO
[project.optional-dependencies]
usd = [
]

# TODO
materialx = [
]

dev = [
"black",
"ruff",
"Qt.py-stubs @ git+https://github.com/matiascodesal/Qt.py-stubs.git@5a07e53",
"pytest",
"pytest-qt",
"pytest-cov",
# TODO
# "Qt.py-stubs @ git+https://github.com/matiascodesal/Qt.py-stubs.git@5a07e53",
# "MaterialX-stubs @ git+https://github.com/manuelkoester/MaterialX-stubs.git@7696cbb"
]

build = [
"pyinstaller",
"pygit"
]

pypi = [
"twine"
]
# TODO
# usd = [
# ]

# Alias
deps = ["QuiltiX[usd,materialx]"]
all = ["QuiltiX[usd,materialx,dev,build,pypi]"]
# TODO
# materialx = [
# ]


[project.urls]
"Homepage" = "https://github.com/PrismPipeline/QuiltiX"
"Bug Reports" = "https://github.com/PrismPipeline/QuiltiX/issues"
"Source" = "https://github.com/PrismPipeline/QuiltiX"

[project.gui-scripts]
quiltix = "QuiltiX:quiltix"

[build-system]
requires = ["setuptools>=61.0.0", "setuptools-scm"]
build-backend = "setuptools.build_meta"
Expand All @@ -90,6 +81,3 @@ line-length = 120

[tool.ruff]
line-length = 120

[project.gui-scripts]
quiltix = "QuiltiX:quiltix"
Empty file added src/QuiltiX/__init__.py
Empty file.
Loading

0 comments on commit 269d2a9

Please sign in to comment.