Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Validate

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

jobs:
build-and-check:
runs-on: macos-14
timeout-minutes: 20

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
7.0.x
10.0.x

- name: Restore
run: dotnet restore RhinoSpatial.sln

- name: Build
run: dotnet build RhinoSpatial.sln -c Release --no-restore

- name: Check OGC requests
run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- ogc-request-check

- name: Check reference sources
run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- reference-source-check

- name: Check 3D Tiles selection
run: dotnet run --project RhinoSpatial.Sandbox.csproj -c Release --no-build -- tiles-selection-check

- name: Validate source catalogue JSON
run: python3 -m json.tool examples/sources.json >/dev/null
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

RhinoSpatial follows an alpha release line while its existing source categories are stabilized through real project use. Earlier releases remain documented on [GitHub Releases](https://github.com/PascalNun/RhinoSpatial/releases).

## 0.3.3-alpha — 2026-07-18

### Highlights

- Stabilized Google Photorealistic 3D Tiles traversal around one coherent refinement frontier, with branch-level coarser-parent fallback instead of mixing unrelated detail levels.
- Added geographic bounds checks and richer projection/traversal diagnostics for missing, oversized, or out-of-context 3D Tiles content.
- Made the shared elevation baseline deterministic so Google 3D Tiles, LoD2 buildings, and terrain remain aligned regardless of Grasshopper connection or solution order.
- Broadened Spatial Context reference metadata to cover WFS, WMS, WCS, GeoTIFF, Shapefile, GeoJSON, CityJSON, CityGML/GML/XML, Esri ASCII Grid, XYZ/CSV terrain grids, folders, and LoD ZIP archives.
- Replaced the implicit Frankfurt startup assumption with a saved-selection/reference-extent/neutral-world startup sequence and an explicit fallback-SRS warning.
- Improved WCS coverage discovery and multipart GeoTIFF extraction, WMS/WFS axis and HTTPS handling, LoD2 CRS inheritance, and EPSG:28992/7415 transforms.
- Expanded tested-source documentation, validation checks, tutorial screenshots, and downloadable Grasshopper examples.

### Compatibility

- Rhino 8 and Grasshopper.
- Google 3D Tiles still require a user-managed Google Maps Platform API key and are intended only as visual reference context.
- This remains an alpha release; provider-specific services and unusual CRS/geometry combinations can still expose edge cases.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,15 @@ For the full tutorial, see the [RhinoSpatial workflow](docs/SHOWCASE.md).
- [Test source catalogue](docs/TEST_SOURCES.md)
- [Project scope](docs/PROJECT_SCOPE.md)
- [Roadmap](docs/ROADMAP.md)
- [Changelog](CHANGELOG.md)

## Project Status

RhinoSpatial is currently still in an alpha stage.

The `v0.3.2-alpha` release continues the first complete alpha line where the planned core data layers are present as a coherent toolkit. This release focuses on source compatibility and stabilization: broader vector inputs, cleaner LoD2 source handling, updated test-source documentation, and leaner packaging. The source categories are considered stable at the category level, while individual providers, geometry conversion paths, fallbacks, and documentation are still expected to improve through real-world use.
The `v0.3.3-alpha` release continues the first complete alpha line where the planned core data layers are present as a coherent toolkit. This release focuses on reliable alignment and broader source compatibility: Google 3D Tiles now use a coherent refinement frontier and stronger projection diagnostics, elevation placement no longer depends on Grasshopper solution order, Spatial Context can infer reference extents from more service and local-file sources, and WFS/WMS/WCS/LoD2 provider handling has been strengthened. The source categories are considered stable at the category level, while individual providers, geometry conversion paths, fallbacks, and documentation are still expected to improve through real-world use.

As of `v0.3.2-alpha`, the originally planned core source set is present: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles reference viewer all share the same Spatial Context workflow.
As of `v0.3.3-alpha`, the originally planned core source set is present: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles reference viewer all share the same Spatial Context workflow.

It has only been tested with a relatively small number of WFS, WMS, LoD2, terrain, GeoTIFF, OSM, and 3D Tiles workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata.

Expand Down
2 changes: 1 addition & 1 deletion RhinoSpatial/RhinoSpatial.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<PropertyGroup>
<Version>0.3.2</Version>
<Version>0.3.3</Version>
<AssemblyName>RhinoSpatial</AssemblyName>
<RootNamespace>RhinoSpatial</RootNamespace>
<Product>RhinoSpatial</Product>
Expand Down
2 changes: 1 addition & 1 deletion RhinoSpatial/RhinoSpatialInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ public class RhinoSpatialInfo : GH_AssemblyInfo

public override string AuthorContact => "https://github.com/PascalNun/RhinoSpatial";

public override string AssemblyVersion => GetType().Assembly.GetName().Version?.ToString() ?? "0.3.2";
public override string AssemblyVersion => GetType().Assembly.GetName().Version?.ToString() ?? "0.3.3";
}
}
2 changes: 1 addition & 1 deletion docs/PROJECT_SCOPE.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ The following source / component types are considered part of the core RhinoSpat
- **Load OSM**
- **3D Tiles Viewer (Google)** as a visual reference viewer, not a normal source/import workflow

These form the core data layers of the project and are considered stable at the source-category level. The `v0.3.2-alpha` release continues the first complete alpha line where this planned source set is present together; future work should mainly refine robustness, quality, provider compatibility, examples, and documentation inside this scope.
These form the core data layers of the project and are considered stable at the source-category level. The `v0.3.3-alpha` release continues the first complete alpha line where this planned source set is present together; future work should mainly refine robustness, quality, provider compatibility, examples, and documentation inside this scope.

## Meaning of the Core Source Types

Expand Down
2 changes: 1 addition & 1 deletion docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
RhinoSpatial has moved beyond its original starting point as a WFS-focused loader and is now developing into a broader geospatial toolkit for Rhino and Grasshopper.

At this stage, the core source scope is considered defined at the category level.
The `v0.3.2-alpha` release continues the first complete alpha line where the planned source categories are present together in the plugin.
The `v0.3.3-alpha` release continues the first complete alpha line where the planned source categories are present together in the plugin.
The main focus is no longer to constantly add new categories of sources, but to strengthen, refine, simplify, and polish the current system.

No additional core source categories are currently planned.
Expand Down
4 changes: 2 additions & 2 deletions package/food4rhino/Food4Rhino-listing.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The Google 3D Tiles component is a viewer/reference workflow. It requires the us

RhinoSpatial is currently still in an alpha stage.

The `0.3.2-alpha` release is a stabilization and source-compatibility release in the first complete alpha line. The planned core source set is present together: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles Viewer. This version improves local vector input support, LoD2 source handling, test-source documentation, package cleanup, and dependency notices. It has only been tested with a relatively small number of real workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata.
The `0.3.3-alpha` release is a reliability and source-compatibility release in the first complete alpha line. The planned core source set is present together: WFS, WMS, LoD2 Buildings, Terrain, GeoTIFF, OSM, and the Google 3D Tiles Viewer. This version improves Google 3D Tiles selection and diagnostics, makes shared elevation alignment independent of Grasshopper connection order, broadens Spatial Context reference-source metadata, strengthens WFS/WMS/WCS/LoD2 provider handling, and expands the tested-source catalogue and example material. It has only been tested with a relatively small number of real workflows so far. Behavior may still vary depending on the provider, geometry type, coordinate system, service version, response format, API access, or local file metadata.

Feedback, edge cases, and additional test links are very welcome.

Expand All @@ -65,7 +65,7 @@ Rhino Package Manager:

Current release package:

- `RhinoSpatial-0.3.2-alpha.zip`
- `RhinoSpatial-0.3.3-alpha.zip`

## Repository

Expand Down
2 changes: 1 addition & 1 deletion package/yak/manifest.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: RhinoSpatial
version: 0.3.2.0
version: 0.3.3.0
authors:
- Pascal Nun
description: Study-oriented geospatial toolkit for Rhino and Grasshopper.
Expand Down
1 change: 1 addition & 0 deletions scripts/build-food4rhino-zip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ find "$PLUGIN_BUILD_DIR" -maxdepth 1 -type f \
-exec cp {} "$STAGING_DIR/" \;

cp "$ROOT_DIR/README.md" "$STAGING_DIR/README.md"
cp "$ROOT_DIR/CHANGELOG.md" "$STAGING_DIR/CHANGELOG.md"
cp "$ROOT_DIR/LICENSE" "$STAGING_DIR/LICENSE"
cp "$ROOT_DIR/THIRD-PARTY-NOTICES.md" "$STAGING_DIR/THIRD-PARTY-NOTICES.md"
cp "$ROOT_DIR/package/food4rhino/INSTALL.md" "$STAGING_DIR/INSTALL.md"
Expand Down
1 change: 1 addition & 0 deletions scripts/build-yak.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ mkdir -p "$STAGING_DIR"

cp "$MANIFEST_SOURCE" "$STAGING_DIR/manifest.yml"
cp "$ROOT_DIR/README.md" "$STAGING_DIR/README.md"
cp "$ROOT_DIR/CHANGELOG.md" "$STAGING_DIR/CHANGELOG.md"
cp "$ROOT_DIR/LICENSE" "$STAGING_DIR/LICENSE"
cp "$ROOT_DIR/THIRD-PARTY-NOTICES.md" "$STAGING_DIR/THIRD-PARTY-NOTICES.md"
cp "$ROOT_DIR/package/food4rhino/INSTALL.md" "$STAGING_DIR/INSTALL.md"
Expand Down
Loading