41 Commits

Author SHA1 Message Date
96bc82f0fb feat(stereo): add optional disparity post-filters
- add configurable median and edge-aware WLS filtering to the CPU SGBM matcher

- preserve SGBM rejection holes when WLS smooths valid disparities

- detect and link OpenCV ximgproc when available, with a graceful fallback otherwise

- forward CPU tuning through the matcher factory and cover validation and hole preservation
2026-09-14 10:43:29 +03:00
4f21e2ea38 fix(cloud_point): regularise SGBM and export viewable PLY meshes
- Configure StereoSGBM with P1/P2 penalties, 5x5 block, uniqueness ratio,
  speckle filter and left-right check; previously it ran unregularised and
  produced a heavy tail of low-disparity outliers reprojecting metres away
  (SCARED benchmark MAE3D 44 mm -> 0.8 mm, RMSE 289 mm -> 1.4 mm)
- Pass the requested disparity count to the CUDA SGM matcher (rounded to
  64/128/256) instead of a hard-coded 16
- Add optional `cloud_point` config section (algorithm, num_disparities,
  depth range) consumed by CLI options 4/5; ship config.scared.yml
- write_ply now emits a binary PLY with a grid-triangulated mesh so web
  viewers stop fabricating slivers from consecutive vertices
- Add config, matcher and PLY export tests; document in README
2026-09-14 10:43:24 +03:00
cd97e7b3f1 fix(rpc): stop server before joining threads in crpc_deinit
All checks were successful
Verification / Is-Buildable (push) Successful in 3m22s
crpc_deinit() called TcpServer::join() without stop(), so with any live
TCP client the accept thread never exited and deinit blocked forever on
the caller's thread (froze the Unity main thread in OnDestroy during
e2e). Call server->stop() first, which clears running_ and unblocks
accept, then join.
2026-09-11 17:50:00 +03:00
7c9df13628 [skills] Add pointcloud-ops skill definition
:Description:
- Added pointcloud-ops skill in .skills/pointcloud-ops/SKILL.md for pointcloud reprojection operations.

:Testing:
- Verified skill detection in promptfoo eval.
2026-08-27 20:32:53 +03:00
98b64020e4 feat(cloud_point): benchmark SCARED reconstruction accuracy
- Load pixel-aligned SCARED OBJ ground truth with unit conversion
- Rectify left-camera XYZ maps into the reconstruction coordinate frame
- Compute coverage, component errors, 3-D errors, and accuracy thresholds
- Add a JSON benchmark executable and focused evaluator/loader tests
- Document benchmark usage and disparity configuration

TG-2 #ready-for-test
2026-08-27 15:19:18 +03:00
b8d8272f76 docs(openwiki): automate recurring documentation updates
- Add scheduled OpenWiki regeneration and pull-request workflow
- Refresh generated wiki metadata, navigation, and source documentation
- Add Doxygen configuration and ignore generated documentation output
- Publish OpenWiki guidance for Codex and Claude agents

TG-3 #ready-for-test
2026-08-27 15:15:45 +03:00
ea99cd62ee chore(release): bump version to 0.2.0
All checks were successful
Verification / Is-Buildable (push) Successful in 4m8s
TG-2 #ready-for-test
TG-3 #ready-for-test
2026-07-12 22:28:21 +03:00
2a77419b62 chore(skills): add commit-task-tags skill for kanban TG trailers
Documents the TG-<NUMBER> #<state> commit message trailer convention:
state semantics (new, ready, in-progress, ready-for-test, done), rules
for multi-commit epics, and a helper script for amending tags during
interactive rebase.
2026-07-12 22:28:21 +03:00
f8177d8926 fix(cloud_point): validation, thread safety, and test cleanup
- Parse port inside try block for proper error reporting instead of unhandled exception
- Make frame_counter atomic to eliminate data race under TcpServer per-client threads
- Validate num_disparities is positive multiple of 16 in StereoMatcherFactory
- Validate stereo pair dimensions match in ScaredDatasetLoader
- Silence nodiscard warnings via std::ignore in tests

TG-3 #ready-for-test
TG-2 #ready-for-test
2026-07-12 22:28:21 +03:00
e139a55143 feat(cloud_point): SCARED dataset validation with real endoscopic stereo data
- ScaredDatasetLoader: loads M1/D1/M2/D2/R/T from OpenCV YAML + Left/Right PNGs
- scared_dataset_server executable serving get-stereo-calibration and get-image-pair
- E2E test against SCARED dataset with GTEST_SKIP guard (requires SCARED_KEYFRAME_DIR)
- README SCARED dataset validation section with CLI options and mm->m conversion
- CLI disparity-range caveat documentation

TG-2 #in-progress
2026-07-12 22:28:21 +03:00
162c210a7d feat(cloud_point): stereo rectification, point cloud pipeline, and CloudPointClient facade
- StereoRectifier wrapping cv::stereoRectify + cv::initUndistortRectifyMap (CV_16SC2 maps)
- PointCloudBuilder with cv::reprojectImageTo3D and depth/NaN filtering
- CloudPointClient high-level facade: connect(), compute_cloud() -> std::expected<PointCloud, Error>
- write_ply() ASCII PLY export helper
- CLI options 4 (compute-cloud) and 5 (compute-cloud + save PLY)
- Fix TcpServer to loop over multiple requests per connection
- Expose num_disparities parameter through CloudPointClient and StereoMatcherFactory
- Unity C# integration design spec
- Sync README, AGENTS, openwiki with stereo pipeline (C++23)
- E2E synthetic-scene test with constant-disparity stereo pair

TG-9 #ready-for-test
TG-4 #ready-for-test
TG-2 #in-progress
2026-07-12 22:28:21 +03:00
d486f550d2 feat(rpc): stereo calibration and image-pair wire protocol
- Remove unused stdexec dependency
- Fix dangling cv::Mat references and swapped dimensions in image/matrix factories
- Add CameraCalib, StereoCalibrationRPC, ImagePairRPC DTOs with nlohmann serialization
- Implement get-stereo-calibration and get-image-pair RPC handlers with deterministic mock data
- Extend RpcClient with typed getters and params-bearing call overload
- Restructure API.md with full JSON schemas and conventions
- 13 unit and integration tests for serialization

TG-3 #in-progress
TG-7 #ready-for-test
2026-07-12 22:28:21 +03:00
24b6f9937f feat(cloud_point): add OpenCV integration, stereo matching, and get-available-methods RPC
- Add OpenCV and stdexec dependencies
- ImageRPC type bridging OpenCV and RPC layers
- Stereo rectification boilerplate
- get-available-methods RPC method with get_count/get_method_name_by_id/get_method_names
- Tests for remote method retrieval
- CPU/GPU stereo matcher interfaces with SGBM implementation
- Documentation consistency pass across impl and docs

TG-5 #ready-for-test
TG-2 #in-progress
2026-07-12 22:28:21 +03:00
71c3d930d9 feat(docs) added openwiki to the project
All checks were successful
Verification / Is-Buildable (push) Successful in 3m8s
:Release Notes:
-

:Detailed Notes:
-

:Testing Performed:
- was not verified, to be fair :D

:QA Notes:
- generated by glm-5.2

:Issues Addressed:
TG-3
2026-07-03 01:47:34 +03:00
9de6f5a82d fix(glog) init in tests
All checks were successful
Verification / Is-Buildable (push) Successful in 3m10s
:Release Notes:
-

:Detailed Notes:
-

:Testing Performed:
-

:QA Notes:
-

:Issues Addressed:
-
2026-06-24 00:04:46 +03:00
Artur Mukhamadiev
33dd44f454 [feat] add minimal client and address-based init
All checks were successful
Verification / Is-Buildable (push) Successful in 3m40s
- add crpc_init_with_address for direct ip/port startup without yaml
- add minimal_client.cpp example using TCPConnector to send a ping
- set install_rpath '$ORIGIN' on shared libs so they find bundled deps
- ignore .worktrees/ for git worktree scratch directories
v0.1.2
2026-06-02 16:18:31 +03:00
Artur Mukhamadiev
e17eed40e4 [test] gitea workflow
All checks were successful
Verification / Is-Buildable (push) Successful in 2m52s
2026-04-21 17:23:10 +03:00
Artur Mukhamadiev
b85fa6fc76 [tests] unit tests to cover edge cases
Some checks failed
Verification / Is-Buildable (push) Failing after 3m12s
v0.1.1
2026-04-21 16:54:21 +03:00
Artur Mukhamadiev
3dcaf9fbae [fix] resolved several issues found by AI
Some checks failed
Verification / Is-Buildable (push) Failing after 2m41s
2026-04-21 16:51:46 +03:00
Artur Mukhamadiev
be4dc501ae [fix] test api log to stderr
Some checks failed
Verification / Is-Buildable (push) Failing after 2m45s
2026-04-20 17:00:09 +03:00
Artur Mukhamadiev
1f2245e342 fix(config) added sample config
Some checks failed
Verification / Is-Buildable (push) Failing after 2m26s
config.yml expected format:
```yml
server:
  ip: "ip-string"
  port: int
```
2026-04-15 20:15:21 +03:00
e9e15a20a2 [fix] compilation of this tag on windows
Some checks failed
Verification / Is-Buildable (push) Failing after 2m4s
2026-04-14 00:12:16 +03:00
Artur Mukhamadiev
5634773eaf [fix] build file fixes for linux and newer CMake
Some checks failed
Verification / Is-Buildable (push) Failing after 2m51s
:Release Notes:
-

:Detailed Notes:
-

:Testing Performed:
-

:QA Notes:
-

:Issues Addressed:
-
2026-04-13 23:25:11 +03:00
603646c230 [base64] minimal encode/decode of raw string 2026-03-12 00:09:26 +03:00
e0295f21b5 [style] main namespace renamed to SCORE
based on new suggested project name
2026-03-11 16:38:50 +03:00
46cf56196e [base64] add subprojects
Some checks failed
Verification / Is-Buildable (push) Has been cancelled
TG-4
2026-03-07 21:40:24 +03:00
69466a1771 [docs] change docs + base64
Some checks failed
Verification / Is-Buildable (push) Failing after 53s
TG-3 #ready
2026-03-07 21:06:21 +03:00
7a2d6d0994 [actions] add minimal action with unit tests
All checks were successful
Verification / Is-Buildable (push) Successful in 1m50s
project would be build on aarch64 and unit tests
would be executed on act_runner
2026-03-02 21:16:19 +03:00
f94a23b723 [test-c-api] appended api with helpful methods
valgrind doesn't reports any error
thread sanitizer reports one issue on test tear down (need to
investigate)
2026-03-01 23:54:06 +03:00
e0ac93c657 [c_api] added c api for libs
changed project structure, now relying on shared libraries
win-min
2026-02-27 22:03:09 +03:00
Artur Mukhamadiev
b28c1b8e7f [docs] added docs folder
moved uml diagram to docs folder
changed readme communcation model to a result image view
2026-02-20 23:51:57 +03:00
Artur Mukhamadiev
1ab01134c5 [todo] added todo section in readme 2026-02-20 23:47:53 +03:00
Artur Mukhamadiev
d26ab35339 [tcp] removed duplicate code
:Release Notes:
removed unnecessary code duplication for TCP socket read in tcp_server
and tcp_connector. Changed several log lines to appear only in debug
build
2026-02-20 23:44:10 +03:00
8ee06fe6a0 [win] compilation on windows verified 2026-02-20 20:38:01 +03:00
ece26e7b1f [jsonrpccxx] moved to external rpc impl
Detailed:
      As base used jsonrpccxx implementation paired with TCP socket
      TCP socket updated to handle dynamic sized buffers
      TCP communication protocol changed to serialized packet size after
      which json string is presented
2026-02-20 17:51:14 +03:00
4ddaea91a7 added external rpc implementation 2026-02-06 17:37:07 +03:00
9b482ae956 [docs] change listen to connect :D 2026-01-26 00:39:20 +03:00
dc82c29556 [docs] fixed docker description 2026-01-26 00:37:43 +03:00
dfa4b156e9 [docker] verified and corrected 2026-01-26 00:33:14 +03:00
54c169a845 [cli] added cli for testing capabilities
Gemini 3 pro + opencode
2026-01-26 00:24:43 +03:00
cbe56d9193 [base] hail vibe-coding
Minimal API functionality with unit tests,
could be used for integration tests with Unity server.
For internal testing used RPC_server implementation
2026-01-26 00:14:19 +03:00