Skip to content

Merge weBIGeo#234

Open
adam-ce wants to merge 651 commits into
AlpineMapsOrg:mainfrom
weBIGeo:main
Open

Merge weBIGeo#234
adam-ce wants to merge 651 commits into
AlpineMapsOrg:mainfrom
weBIGeo:main

Conversation

@adam-ce

@adam-ce adam-ce commented Jan 20, 2026

Copy link
Copy Markdown
Member

No description provided.

pkomon and others added 30 commits December 10, 2024 12:12
- includes also buffer to texture node rewrite
- uv/position/weight calculations should be finally correct now
- for experimental implementation of multi-flow models
  using a sequence of compute shader calls
Note: Seems to be buggy for overlay texture
- convert our single-direction trajectory model to a monte-carlo method
  by randomly offsetting the sampled normal each step
  for simulating divergence/"spread" of the avalanche
- still WIP, need to expose some parameters as uniforms
  esp. sample count and offset radius
- dispatch more workgroups instead of looping over samples in shader
- eliminates annoying white trajectories per default
What we did in the meeting.
GeraldKimmersdorfer and others added 28 commits June 11, 2026 11:23
* removes: ALP_WEBGPU_APP_ENABLE_IMGUI

* refactor: new shader directives with namespaces

* add: moves utility shaders into the webgpu target

* add: creates logic for MipMapCreation and utility shaders in webgpu target

* refactor: moves OverlayRenderNode into webgpu_app

* refactor: creates new webgpu_compute target and moves GpuTileId into nucleus

* add: shader cleanup

* add: make NodeRenderer optional for the NodeRenderer

* add: platform independent file upload ImGuiStyle defined in ImGuiManager

* fix: No MipMaps for BufferToTextureNode

* add: gui changes on overlay panel

* fix: overlay wipe with unloaded textureoverlay

* fix: BufferToTextureNode crashes on successive runs

* refactor: autoformat
* add: some commentary updates

* refactor: restructure app dir layout

* refactor: moves easing into nucleus

* add: serialization/unserialization code for Nodes

* add: serialize nodegraph functionality with ui layer

* add: load functionality for NodeGraph

* add: packed default graphs

* add: node cleanup

* add: add_node functionality

* add: new graph functionality

* removes: node animations

* add: confirmation dialog for auto-layout

* add: functionality to remove nodes

* remove: unnecessary set_enabled_for_nodes_with_name function

* add: removes node size estimation and fixes shrinking bug

* add: hotkeys and menu changes

* add: spawn new nodes at modal position

* fix: node interaction when changing settings

* add: node renaming and smaller graph font size

* fix: issue with smaller font size

* add: make small font optional

* removes: NodeGraph name

* add: updated presets

* refactor: autoformat

* refactor: root directory cleanup

* fix: fixes serve_wasm python script

* fix: missed second path
* fix: ktx and ktx_read build directory

* moves. binary docs and adds stub for webgpu-app.md

* add: Readme based on upstream

* add: round shape for library

* add: show only top level dependencies in graph

* add: diagram to explain webgpu_app

* add: doc for webgpu_engine

* add: minify rendering pipeline

* add: documentation for webgpu_base

* add: links to Readme

* add: simplification for webgpu_app_dev

* add: test cmake targets to documentation
# Conflicts:
#	.gitignore
#	CMakeLists.txt
#	README.md
* add: removes hardcoded avalanche disclaimer

* add: removes all <format> uses (no gcc support)

* add: removes failing roundtrip test

* fix: case insensitive QDebug
removes: gpx_tracks and disables webgpu targets for ci pipelines
fix: fixes cmake presets and adds alp-base
* add: status and fadeout for spinner

* add: more contrast logo

* add: analyze_wasm script and puts nucleus ressources behind proper flag

* add: ImGuiFileDialog only for native build
* Enable WebGPU app artifacts in CI deploy

* Guard Windows WebGPU app library pragma

* Fix WebGPU vertex format assertion for GCC

* Treat WebGPU timestamp query as optional

* Install Xlib XCB headers for Linux CI

* Retry WebGPU device without timestamp queries

* Load WebGPU app script once

* Suppress WebGPU app asyncify unwind rejection

* Pin Windows CI aqtinstall source

* Pin Windows CI aqtinstall source

* ignore++

* rename binary docs to project reports

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GeraldKimmersdorfer @pkomon how much badness does this cause in webigeo?

iirc this is necessary in the alpine app to place the pivot point for some of the interaction methods.

@adam-ce adam-ce left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for putting in all the work!!!

i reviewed only the nucleus and shared parts, i trust you on the webgpu parts. please see the in-line comments (also see the comment 1 hour ago, half a page up). i

Comment thread nucleus/tile/drawing.h

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete instead of comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread nucleus/tile/GpuTileId.h

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the opengl version uses nucleus::srs::pack(tile.id) -> glm::vec<2, uint32_t>, which is more efficient and works until zoomlevel 29 (according to chatgpt). i therefore think that this class should not exist.

if you want to keep it, please move it into webigeo. but i would rather suggest replacing it with pack and unpack.

Comment thread nucleus/stb/stb_image.cpp

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the convention would be to remove the stb_ prefix from all files inside the stb directory.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you switched this file to windows line endings. fix your git setup, use linux line endings!

Comment thread nucleus/CMakeLists.txt

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this ktx setup to cmake/SetupKTX.cmake to clean up the main CMakeLists file. make a function that takes the commitish, and does the rest of the setup. this should be easy for an llm.

Comment thread CMakeLists.txt

########################################### dependencies #################################################
find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Network Quick QuickControls2 LinguistTools)
qt_standard_project_setup(REQUIRES 6.8)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we set the min version to qt 6.10 or 6.11?

Comment thread CMakePresets.json

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm not against providing a cmake preset, but this one should be cleaned up.

there are hard coded paths, alp-base sounds strange in the context of the upstream repo, generally, there is a ton of targets.

imo:

  • remove the release stuff, and let CI build that (you can download the artefacts).
  • make targets like webgpu_* and webgl_*
  • remove all hardcoded paths (they will break at some point), and rely on the environment. if that doesn't work, instruct the user on how to specify it locally.

Comment thread README.md
## Code style
* class names are CamelCase, method, function and variable names are snake_case.
* class attributes have an m_ prefix and are usually private, struct attributes don't and are usually public.
* use `void set_attribute(int value)` and `int attribute() const` for setters and getters (that is, avoid the get_). Use [the Qt recommendations](https://wiki.qt.io/API_Design_Principles#Naming_Boolean_Getters,_Setters,_and_Properties) for naming boolean getters.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you remove the link?

Comment thread README.md
* indent with space only, indent 4 spaces
* ideally, use the clang-format file provided with the project
(in case you use Qt Creator, go to Preferences -> C++ -> Code Style: Formatting mode: Full, Format while typing, Format edited code on file save, don't override formatting)
* follow the [Qt recommendations](https://wiki.qt.io/API_Design_Principles) and the [c++ core guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) everywhere else.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you remove the link?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants