Skip to content

Commit 322029e

Browse files
authored
Merge pull request #50 from CSSFrancis/release/v0.6.0
Release v0.6.0
2 parents c036181 + 5542ad2 commit 322029e

12 files changed

Lines changed: 68 additions & 45 deletions

‎CHANGELOG.rst‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,64 @@ Fragment files in ``upcoming_changes/`` are assembled into this file by
1010

1111
.. towncrier release notes start
1212
13+
0.6.0 (2026-07-31)
14+
==================
15+
16+
API and Behaviour Changes
17+
-------------------------
18+
19+
- **3-D orbit drags have reversed direction.** Both azimuth and elevation now
20+
move the geometry *with* the cursor instead of away from it, matching
21+
matplotlib's ``mplot3d`` and every other turntable control — dragging right
22+
spins a globe right. Azimuth and elevation position the *camera*, so adding
23+
the drag delta swept the surface the opposite way, as if you had grabbed its
24+
far side. Any muscle memory (or scripted pointer drag) built against the old
25+
direction is inverted; panels driven from Python with
26+
:meth:`~anyplotlib.Plot3D.set_view` are unaffected.
27+
28+
29+
New Features
30+
------------
31+
32+
- :class:`~anyplotlib.Event` now carries ``azimuth`` and ``elevation`` for 3-D
33+
orbit events. The renderer had always emitted them alongside ``zoom``, but they
34+
were dropped on the way to Python — and since a JS-side drag does not sync back
35+
into ``Plot3D._state``, a handler had no way to react to an orbit at all. See
36+
the new ``Star Globe Explorer`` gallery example, which links a celestial sphere
37+
to a sky map through them.
38+
- Added :meth:`~anyplotlib.Plot2D.add_brush_widget` for painting freehand
39+
multi-class label strokes on a 2-D image with Shift-drag, leaving a bare drag to
40+
pan as before.
41+
- Added :meth:`~anyplotlib.Plot3D.set_texture` for wrapping an image around a 3-D
42+
surface — a globe, a planet, or a star chart on the celestial sphere — with
43+
optional diffuse shading and backface culling. ``Axes.plot_surface`` gained
44+
``texture=``, ``bounds=``, and ``gpu=`` to match. Textured surfaces render on
45+
WebGPU when it is available (roughly 9k triangles at 54 ms/frame on Canvas2D
46+
versus 0.4 ms on the GPU), falling back to Canvas2D silently otherwise.
47+
``set_axis_off()`` now also hides a 3-D panel's axis lines, labels, and ticks.
48+
49+
50+
Bug Fixes
51+
---------
52+
53+
- Fixed WebGPU 3-D geometry being clipped at the corners of a cube-shaped
54+
dataset. The clip-space depth scale let ``clip.z`` reach 1.09 for a point at
55+
the far corner of the normalised bounds box, outside the ``[0, 1]`` range
56+
WebGPU keeps, so the nearest corner of a dense :meth:`~anyplotlib.Axes.scatter3d`
57+
cloud silently vanished at the default camera angles. Spherical geometry was
58+
never affected.
59+
- Fixed an inverted depth comparison in the WebGPU 3-D projection: a GPU-rendered
60+
:meth:`~anyplotlib.Axes.scatter3d` cloud drew its far points on top of its near
61+
ones wherever two points overlapped on screen. Voxel panels were unaffected
62+
(they disable depth writes), and the Canvas2D path was always correct.
63+
- Fixed the docs deployment racing itself on release. A push to ``main`` and its
64+
release tag are different refs, so the ``docs-${{ github.ref }}`` concurrency
65+
group put them in separate groups and both pushed to ``gh-pages`` at once; the
66+
loser was rejected and its versioned directory never appeared, while
67+
``switcher.json`` still advertised the version. The deploy job now uses a
68+
ref-independent group so deployments queue instead.
69+
70+
1371
0.5.0 (2026-07-26)
1472
==================
1573

‎docs/_root/index.html‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
<meta charset="utf-8" />
55
<title>anyplotlib – redirecting…</title>
66
<!-- Redirect to the latest dev docs. -->
7-
<meta http-equiv="refresh" content="0; url=v0.5.0/" />
8-
<link rel="canonical" href="v0.5.0/" />
7+
<meta http-equiv="refresh" content="0; url=v0.6.0/" />
8+
<link rel="canonical" href="v0.6.0/" />
99
</head>
1010
<body>
1111
<p>
12-
Redirecting to <a href="v0.5.0/">v0.5.0 documentation</a>…
12+
Redirecting to <a href="v0.6.0/">v0.6.0 documentation</a>…
1313
</p>
1414
</body>
1515
</html>

‎docs/_root/switcher.json‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
"version": "dev",
55
"url": "https://cssfrancis.github.io/anyplotlib/dev/"
66
},
7+
{
8+
"name": "v0.6.0 (stable)",
9+
"version": "v0.6.0",
10+
"url": "https://cssfrancis.github.io/anyplotlib/v0.6.0/"
11+
},
712
{
813
"name": "v0.5.0 (stable)",
914
"version": "v0.5.0",

‎docs/conf.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
project = "anyplotlib"
1818
copyright = "2026, anyplotlib contributors"
1919
author = "anyplotlib contributors"
20-
release = "0.5.0"
20+
release = "0.6.0"
2121

2222
# When built in CI the workflow sets DOCS_VERSION to the tag name (e.g.
2323
# "v0.1.0") or "dev". Fall back to "dev" for local builds.

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ exclude = [
1313

1414
[project]
1515
name = "anyplotlib"
16-
version = "0.5.0"
16+
version = "0.6.0"
1717
description = "A plotting library using python, javascript and anywidget for performant in browser plotting."
1818
readme = "README.md"
1919
license = { text = "MIT" }

‎upcoming_changes/+brush_widget.new_feature.rst‎

Lines changed: 0 additions & 3 deletions
This file was deleted.

‎upcoming_changes/+docs-deploy-race.bugfix.rst‎

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎upcoming_changes/+event_camera_angles.new_feature.rst‎

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎upcoming_changes/+gpu_depth_range.bugfix.rst‎

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎upcoming_changes/+gpu_depth_sign.bugfix.rst‎

Lines changed: 0 additions & 4 deletions
This file was deleted.

0 commit comments

Comments
 (0)