dazpy 2.7.0__tar.gz → 2.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dazpy-2.7.0 → dazpy-2.7.2}/PKG-INFO +86 -3
- {dazpy-2.7.0 → dazpy-2.7.2}/README.md +85 -2
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/__init__.py +1 -1
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy.egg-info/PKG-INFO +86 -3
- {dazpy-2.7.0 → dazpy-2.7.2}/pyproject.toml +1 -1
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_animation.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_batch.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_bone.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_camera.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_client.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_dforce.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_element.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_geometry.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_interaction.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_light.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_material.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_modifier.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_morph.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_node.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_polling.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_pose.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_property.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_render.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_render_api.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_result.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_scene.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_scene_events.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_scene_state.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_script_builder.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_skeleton.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_timeline.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_undo.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/_viewport.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/exceptions.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/math3.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy/py.typed +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy.egg-info/SOURCES.txt +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy.egg-info/dependency_links.txt +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy.egg-info/requires.txt +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/dazpy.egg-info/top_level.txt +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/setup.cfg +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_api.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_comfyui_client.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_comfyui_enhance_integration.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_dazpy.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_dazpy_integration.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_dsp_runner.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_file_watcher.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_performance.py +0 -0
- {dazpy-2.7.0 → dazpy-2.7.2}/tests/test_workflow_builder.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dazpy
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.2
|
|
4
4
|
Summary: Python SDK for the DAZ Studio Script Server
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/bluemoonfoundry/daz-script-server
|
|
@@ -15,7 +15,7 @@ Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
|
|
|
15
15
|
|
|
16
16
|
# DazScript Server
|
|
17
17
|
|
|
18
|
-
**Version 2.
|
|
18
|
+
**Version 2.7.2** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
|
|
19
19
|
|
|
20
20
|
[](https://bluemoonfoundry.github.io/daz-script-server/)
|
|
21
21
|
[](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
|
|
@@ -83,6 +83,9 @@ print(response.json())
|
|
|
83
83
|
### Getting Started
|
|
84
84
|
- [Quick Start](#-quick-start)
|
|
85
85
|
- [Why This Exists](#why-this-exists)
|
|
86
|
+
- [What's New in v2.7.2](#whats-new-in-v272)
|
|
87
|
+
- [What's New in v2.7.1](#whats-new-in-v271)
|
|
88
|
+
- [What's New in v2.7.0](#whats-new-in-v270)
|
|
86
89
|
- [What's New in v2.6.0](#whats-new-in-v260)
|
|
87
90
|
- [What's New in v2.5.0](#whats-new-in-v250)
|
|
88
91
|
- [What's New in v2.4.0](#whats-new-in-v240)
|
|
@@ -166,6 +169,86 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
|
|
|
166
169
|
|
|
167
170
|
---
|
|
168
171
|
|
|
172
|
+
## What's New in v2.7.2
|
|
173
|
+
|
|
174
|
+
No functional changes to `dazpy`'s behavior. `2.7.1`'s version bump missed
|
|
175
|
+
three places that still said `2.7.0`: `dazpy.__version__` itself (already
|
|
176
|
+
baked into the published `2.7.1` wheel — the reason this needed a new
|
|
177
|
+
version rather than a doc fix), `openapi.yaml`'s `info.version` and two
|
|
178
|
+
response examples, and the plugin's own `DZSRV_VERSION_STR` (what
|
|
179
|
+
`/status`/`/health` actually return at runtime). All three now correctly
|
|
180
|
+
say `2.7.2`.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## What's New in v2.7.1
|
|
185
|
+
|
|
186
|
+
No functional changes. Republished to fix a stale PyPI package description —
|
|
187
|
+
the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
|
|
188
|
+
"What's New in v2.7.0") had landed, and PyPI has no way to update an
|
|
189
|
+
already-published version's metadata. `2.7.1`'s code is identical to
|
|
190
|
+
`2.7.0`'s.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## What's New in v2.7.0
|
|
195
|
+
|
|
196
|
+
### 🖼️ Iray Canvas Support — `DazRenderSettings`
|
|
197
|
+
|
|
198
|
+
Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
|
|
199
|
+
render passes) and resolve their output file paths for a given render:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
from dazpy import DazClient, DazRenderSettings
|
|
203
|
+
|
|
204
|
+
client = DazClient()
|
|
205
|
+
rs = DazRenderSettings(client)
|
|
206
|
+
|
|
207
|
+
rs.add_canvas("Depth")
|
|
208
|
+
print(rs.list_canvases())
|
|
209
|
+
print(rs.canvas_output_paths("C:/renders/shot01.png"))
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 📸 Scene Checkpoints — `DazSceneState`
|
|
213
|
+
|
|
214
|
+
A full scene checkpoint in one call: every skeleton's complete pose
|
|
215
|
+
(bone-level, via `DazPose`) plus camera and light transforms/key
|
|
216
|
+
properties, captured and restored via raw property values so repeated
|
|
217
|
+
capture/apply cycles are idempotent — no more creeping drift on a
|
|
218
|
+
character's morph dials across repeated pose save/restore.
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
from dazpy import DazClient, DazSceneState
|
|
222
|
+
|
|
223
|
+
client = DazClient()
|
|
224
|
+
state = DazSceneState(client)
|
|
225
|
+
|
|
226
|
+
snapshot = state.capture()
|
|
227
|
+
# ... pose the scene for a render ...
|
|
228
|
+
state.apply(snapshot) # back to exactly where you started
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
|
|
232
|
+
|
|
233
|
+
`DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
|
|
234
|
+
`DazNode.reparent()` round out the scene graph so a script can build and
|
|
235
|
+
restructure a scene, not just query and pose one.
|
|
236
|
+
|
|
237
|
+
### Also in this release
|
|
238
|
+
|
|
239
|
+
- **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
|
|
240
|
+
- **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
|
|
241
|
+
- **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
|
|
242
|
+
- **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
|
|
243
|
+
- **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
|
|
244
|
+
- **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
|
|
245
|
+
- **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
|
|
246
|
+
- **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
|
|
247
|
+
- **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
|
|
248
|
+
- A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
169
252
|
## What's New in v2.6.0
|
|
170
253
|
|
|
171
254
|
### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
|
|
@@ -584,7 +667,7 @@ automation code without authoring DazScript by hand.
|
|
|
584
667
|
Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
|
|
585
668
|
|
|
586
669
|
```bash
|
|
587
|
-
pip install dazpy-2.
|
|
670
|
+
pip install dazpy-2.7.2-py3-none-any.whl
|
|
588
671
|
```
|
|
589
672
|
|
|
590
673
|
Or install directly from the repo for development:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DazScript Server
|
|
2
2
|
|
|
3
|
-
**Version 2.
|
|
3
|
+
**Version 2.7.2** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
|
|
4
4
|
|
|
5
5
|
[](https://bluemoonfoundry.github.io/daz-script-server/)
|
|
6
6
|
[](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
|
|
@@ -68,6 +68,9 @@ print(response.json())
|
|
|
68
68
|
### Getting Started
|
|
69
69
|
- [Quick Start](#-quick-start)
|
|
70
70
|
- [Why This Exists](#why-this-exists)
|
|
71
|
+
- [What's New in v2.7.2](#whats-new-in-v272)
|
|
72
|
+
- [What's New in v2.7.1](#whats-new-in-v271)
|
|
73
|
+
- [What's New in v2.7.0](#whats-new-in-v270)
|
|
71
74
|
- [What's New in v2.6.0](#whats-new-in-v260)
|
|
72
75
|
- [What's New in v2.5.0](#whats-new-in-v250)
|
|
73
76
|
- [What's New in v2.4.0](#whats-new-in-v240)
|
|
@@ -151,6 +154,86 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
|
|
|
151
154
|
|
|
152
155
|
---
|
|
153
156
|
|
|
157
|
+
## What's New in v2.7.2
|
|
158
|
+
|
|
159
|
+
No functional changes to `dazpy`'s behavior. `2.7.1`'s version bump missed
|
|
160
|
+
three places that still said `2.7.0`: `dazpy.__version__` itself (already
|
|
161
|
+
baked into the published `2.7.1` wheel — the reason this needed a new
|
|
162
|
+
version rather than a doc fix), `openapi.yaml`'s `info.version` and two
|
|
163
|
+
response examples, and the plugin's own `DZSRV_VERSION_STR` (what
|
|
164
|
+
`/status`/`/health` actually return at runtime). All three now correctly
|
|
165
|
+
say `2.7.2`.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## What's New in v2.7.1
|
|
170
|
+
|
|
171
|
+
No functional changes. Republished to fix a stale PyPI package description —
|
|
172
|
+
the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
|
|
173
|
+
"What's New in v2.7.0") had landed, and PyPI has no way to update an
|
|
174
|
+
already-published version's metadata. `2.7.1`'s code is identical to
|
|
175
|
+
`2.7.0`'s.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## What's New in v2.7.0
|
|
180
|
+
|
|
181
|
+
### 🖼️ Iray Canvas Support — `DazRenderSettings`
|
|
182
|
+
|
|
183
|
+
Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
|
|
184
|
+
render passes) and resolve their output file paths for a given render:
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
from dazpy import DazClient, DazRenderSettings
|
|
188
|
+
|
|
189
|
+
client = DazClient()
|
|
190
|
+
rs = DazRenderSettings(client)
|
|
191
|
+
|
|
192
|
+
rs.add_canvas("Depth")
|
|
193
|
+
print(rs.list_canvases())
|
|
194
|
+
print(rs.canvas_output_paths("C:/renders/shot01.png"))
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 📸 Scene Checkpoints — `DazSceneState`
|
|
198
|
+
|
|
199
|
+
A full scene checkpoint in one call: every skeleton's complete pose
|
|
200
|
+
(bone-level, via `DazPose`) plus camera and light transforms/key
|
|
201
|
+
properties, captured and restored via raw property values so repeated
|
|
202
|
+
capture/apply cycles are idempotent — no more creeping drift on a
|
|
203
|
+
character's morph dials across repeated pose save/restore.
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
from dazpy import DazClient, DazSceneState
|
|
207
|
+
|
|
208
|
+
client = DazClient()
|
|
209
|
+
state = DazSceneState(client)
|
|
210
|
+
|
|
211
|
+
snapshot = state.capture()
|
|
212
|
+
# ... pose the scene for a render ...
|
|
213
|
+
state.apply(snapshot) # back to exactly where you started
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
|
|
217
|
+
|
|
218
|
+
`DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
|
|
219
|
+
`DazNode.reparent()` round out the scene graph so a script can build and
|
|
220
|
+
restructure a scene, not just query and pose one.
|
|
221
|
+
|
|
222
|
+
### Also in this release
|
|
223
|
+
|
|
224
|
+
- **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
|
|
225
|
+
- **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
|
|
226
|
+
- **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
|
|
227
|
+
- **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
|
|
228
|
+
- **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
|
|
229
|
+
- **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
|
|
230
|
+
- **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
|
|
231
|
+
- **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
|
|
232
|
+
- **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
|
|
233
|
+
- A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
154
237
|
## What's New in v2.6.0
|
|
155
238
|
|
|
156
239
|
### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
|
|
@@ -569,7 +652,7 @@ automation code without authoring DazScript by hand.
|
|
|
569
652
|
Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
|
|
570
653
|
|
|
571
654
|
```bash
|
|
572
|
-
pip install dazpy-2.
|
|
655
|
+
pip install dazpy-2.7.2-py3-none-any.whl
|
|
573
656
|
```
|
|
574
657
|
|
|
575
658
|
Or install directly from the repo for development:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dazpy
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.2
|
|
4
4
|
Summary: Python SDK for the DAZ Studio Script Server
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Homepage, https://github.com/bluemoonfoundry/daz-script-server
|
|
@@ -15,7 +15,7 @@ Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
|
|
|
15
15
|
|
|
16
16
|
# DazScript Server
|
|
17
17
|
|
|
18
|
-
**Version 2.
|
|
18
|
+
**Version 2.7.2** | DAZ Studio 4.5+ | DAZ Studio 6.25+ | Windows & macOS
|
|
19
19
|
|
|
20
20
|
[](https://bluemoonfoundry.github.io/daz-script-server/)
|
|
21
21
|
[](https://bluemoonfoundry.github.io/daz-script-server/api-reference/)
|
|
@@ -83,6 +83,9 @@ print(response.json())
|
|
|
83
83
|
### Getting Started
|
|
84
84
|
- [Quick Start](#-quick-start)
|
|
85
85
|
- [Why This Exists](#why-this-exists)
|
|
86
|
+
- [What's New in v2.7.2](#whats-new-in-v272)
|
|
87
|
+
- [What's New in v2.7.1](#whats-new-in-v271)
|
|
88
|
+
- [What's New in v2.7.0](#whats-new-in-v270)
|
|
86
89
|
- [What's New in v2.6.0](#whats-new-in-v260)
|
|
87
90
|
- [What's New in v2.5.0](#whats-new-in-v250)
|
|
88
91
|
- [What's New in v2.4.0](#whats-new-in-v240)
|
|
@@ -166,6 +169,86 @@ DAZ Studio is powerful for 3D content creation, but automation is limited to man
|
|
|
166
169
|
|
|
167
170
|
---
|
|
168
171
|
|
|
172
|
+
## What's New in v2.7.2
|
|
173
|
+
|
|
174
|
+
No functional changes to `dazpy`'s behavior. `2.7.1`'s version bump missed
|
|
175
|
+
three places that still said `2.7.0`: `dazpy.__version__` itself (already
|
|
176
|
+
baked into the published `2.7.1` wheel — the reason this needed a new
|
|
177
|
+
version rather than a doc fix), `openapi.yaml`'s `info.version` and two
|
|
178
|
+
response examples, and the plugin's own `DZSRV_VERSION_STR` (what
|
|
179
|
+
`/status`/`/health` actually return at runtime). All three now correctly
|
|
180
|
+
say `2.7.2`.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## What's New in v2.7.1
|
|
185
|
+
|
|
186
|
+
No functional changes. Republished to fix a stale PyPI package description —
|
|
187
|
+
the `2.7.0` wheel was uploaded to PyPI before the README fixes below (in
|
|
188
|
+
"What's New in v2.7.0") had landed, and PyPI has no way to update an
|
|
189
|
+
already-published version's metadata. `2.7.1`'s code is identical to
|
|
190
|
+
`2.7.0`'s.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## What's New in v2.7.0
|
|
195
|
+
|
|
196
|
+
### 🖼️ Iray Canvas Support — `DazRenderSettings`
|
|
197
|
+
|
|
198
|
+
Enumerate, create, and remove Iray Canvases (normal/depth/material-ID/etc.
|
|
199
|
+
render passes) and resolve their output file paths for a given render:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
from dazpy import DazClient, DazRenderSettings
|
|
203
|
+
|
|
204
|
+
client = DazClient()
|
|
205
|
+
rs = DazRenderSettings(client)
|
|
206
|
+
|
|
207
|
+
rs.add_canvas("Depth")
|
|
208
|
+
print(rs.list_canvases())
|
|
209
|
+
print(rs.canvas_output_paths("C:/renders/shot01.png"))
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 📸 Scene Checkpoints — `DazSceneState`
|
|
213
|
+
|
|
214
|
+
A full scene checkpoint in one call: every skeleton's complete pose
|
|
215
|
+
(bone-level, via `DazPose`) plus camera and light transforms/key
|
|
216
|
+
properties, captured and restored via raw property values so repeated
|
|
217
|
+
capture/apply cycles are idempotent — no more creeping drift on a
|
|
218
|
+
character's morph dials across repeated pose save/restore.
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
from dazpy import DazClient, DazSceneState
|
|
222
|
+
|
|
223
|
+
client = DazClient()
|
|
224
|
+
state = DazSceneState(client)
|
|
225
|
+
|
|
226
|
+
snapshot = state.capture()
|
|
227
|
+
# ... pose the scene for a render ...
|
|
228
|
+
state.apply(snapshot) # back to exactly where you started
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 🧱 Scene Editing — Node Creation, Deletion, Reparenting
|
|
232
|
+
|
|
233
|
+
`DazScene.create_camera()`/`create_light()`, `DazNode.delete()`, and
|
|
234
|
+
`DazNode.reparent()` round out the scene graph so a script can build and
|
|
235
|
+
restructure a scene, not just query and pose one.
|
|
236
|
+
|
|
237
|
+
### Also in this release
|
|
238
|
+
|
|
239
|
+
- **Clothing/prop fit control** — `DazNode.fit_to()`/`.unfit()`/`.fitted_items()`.
|
|
240
|
+
- **dForce simulation control** — freeze/unfreeze and run/clear simulations via a new `DazDForce` proxy and `DazScene` helpers.
|
|
241
|
+
- **Iray quality control** — `max_samples`/`max_time_secs`/`quality`/`set_quality_preset()` on `DazRenderSettings`, plus `active_engine()`/`set_active_engine()` to query/switch the render engine.
|
|
242
|
+
- **Per-frame animation rendering** — `POST /render/animation` and `DazClient.render_animation_submit()`.
|
|
243
|
+
- **Scene-change event stream** — `DazClient.stream_scene_events()` for watching or blocking on node/light/camera/selection/scene/time/render events.
|
|
244
|
+
- **Camera lens shift** — `DazCamera.lens_shift_x`/`.lens_shift_y`.
|
|
245
|
+
- **FBX/OBJ export** — `DazScene.export_fbx()`/`.export_obj()`.
|
|
246
|
+
- **Keyframe curve introspection** — `DazProperty.get_keys()`/`.remove_key()`/`.clear_keys()`.
|
|
247
|
+
- **Bulk property reads** — `DazElement.numeric_properties()` and `.class_name`.
|
|
248
|
+
- A handful of correctness fixes to `DazPose`/`DazViewport.capture()` (ERC-driven property inflation, bone selection restore, backdrop restore) and render camera selection — see [CHANGELOG.md](CHANGELOG.md#270---2026-07-19) for details.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
169
252
|
## What's New in v2.6.0
|
|
170
253
|
|
|
171
254
|
### 💾 Scene Save Copy — `POST /scene/save-copy` + `DazScene.save_copy()`
|
|
@@ -584,7 +667,7 @@ automation code without authoring DazScript by hand.
|
|
|
584
667
|
Download the `.whl` file from the [latest release](https://github.com/bluemoonfoundry/daz-script-server/releases/latest) and install it:
|
|
585
668
|
|
|
586
669
|
```bash
|
|
587
|
-
pip install dazpy-2.
|
|
670
|
+
pip install dazpy-2.7.2-py3-none-any.whl
|
|
588
671
|
```
|
|
589
672
|
|
|
590
673
|
Or install directly from the repo for development:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|