Commit Graph

30 Commits

Author SHA1 Message Date
ykcheungab 2111a9f32f 新增基于摄像机网格投影的黑白笔画原型
沿用彩色块的网格与可见性投影,便于评估透视适配的笔画。已通过几何单元测试及 250/500 像素光流探针。
2026-10-05 21:49:26 +08:00
ykcheungab f81418c542 将 Xynova 笔画延长至 50% 黑色覆盖率
沿现有笔画向空白处增长,保留最小线宽和笔画间隙。41 项测试通过,双 UV 矢量图无重叠。
2026-10-05 15:56:01 +08:00
ykcheungab b2c39bd1b5 生成无重叠的 0.2 mm Xynova 笔画图案
在打印页毫米坐标中筛选候选笔画,更新双 UV 产物。38 项测试通过;SVG 检查无交叠。
2026-10-05 14:56:34 +08:00
ykcheungab 0a3c3995f3 also added stroke output to be tracked 2026-10-04 11:03:45 +08:00
ykcheungab b7942bfb29 make the newcomer setup path work
Prerequisites named only Python and Blender while the install step sat 29 lines
below in Commands, so a new contributor hit a missing package before finding the
command that installs it. Install now sits inside Prerequisites, with the extras,
the flat requirements.txt list, and which commands actually need Blender. The
duplicate install block left Commands.

requirements.txt gives the flat dependency set in one file; pyproject extras stay
the source of truth.

Verified: README 3770 words against its frozen 3965 ceiling, the 238 words freed
by moving the probe retraction's tables to the docs that already own them;
doc_lint default and --all exit 0.
2026-10-04 11:02:25 +08:00
ykcheungab 30a903a299 Give the stroke pattern one mode and design.yaml tuning
The twelve experimental modes collapse to camera_compensated_width, whose ten
knobs now come from a `stroke_pattern` block, and the PNG-only binary-preview
command goes with them as a strict subset of stroke-texture.

Verified: output is byte-identical at the defaults against the previous code, a
knob change is visible in the artifacts, the suite is green and the doc gate is
clean.
2026-10-04 09:40:17 +08:00
ykcheungab 5bd7dd7a01 Add stroke texture PNG, SVG, and PDF export
Reuse colour artwork serializers and record source hashes. Verified single and multiview exports plus targeted tests.
2026-10-03 21:17:28 +08:00
ykcheungab 6b0694d6cb Name the generator Random Stroke Pattern
Align the Blender script and documentation with the stroke geometry. Verify the existing CLI output is byte-identical and the focused tests pass.
2026-10-03 20:54:19 +08:00
ykcheungab 59f48d6d06 initial version of random angle strokes 2026-10-03 20:41:30 +08:00
ykcheungab 1675ccb4af modify agents.md to follow parent in root 2026-09-30 21:23:47 +08:00
ykcheungab e7618faed4 docs: give the multi-view design and geometry facts one home each
Two workspace documents described the multi-view ownership decision by
overlapping each other and had both gone stale: neither matched the shipped
code, and the architecture document was referenced by nothing at all. They are
archived in the workspace, and this repo now carries the parts that belong to
it.

New: docs/geometry-measurements.md. Measured properties of the r01 sensing
surface, the sensing camera, the UV layouts, the printed cell pitch and the
runtime unroll domain - topology (1032 v / 1974 t), 355.77 mm2 area with 38.1%
near-vertical wall, the off-origin centroid, 94.5% inward-facing normals, the
0.516 x 0.714 mm measured pitch against a wrong 0.205 x 0.3556 mm nominal cell,
75.6% runtime coverage, and incidence over that region (p50 55.6 deg, invariant
to adding views). Merge-mode agreement is included, with an explicit note that
these values are camera-specific and expire when a camera moves - the Xynova
surface already needs 70 deg where r01 ships 62 deg.

Wiring:
- README.md points at the measurements and says they expire.
- design-parameters.md section 4 keeps the key semantics and now links to the
  workspace record for rationale and to the measurements for data, instead of
  restating either.
- design.yaml: replace a self-referential comment pointing back at the same
  document with the keys location and the rationale location.

No behaviour change: the YAML edit is a comment, and no source file is touched.
2026-09-30 16:29:39 +08:00
ykcheungab 1de4431657 docs: state where this repository's documentation rules live
The workspace writing standard (D:\orisys_ws\docs\AUTHORING.md) is not
auto-discovered from inside a repository: the workspace skill root is
D:\orisys_ws\.agents\skills\, and an agent working here resolves its project
root to this repository's .git. This file points at the standard and at the
gate command, and records which kinds of document belong in this repo's docs.

Without it, agents working inside the repository would not learn the budgets
or the placement rules.
2026-09-30 16:12:34 +08:00
ykcheungab 04357f7952 tools: delegate documentation checks to the workspace doc gate
`tools/lint_gate.py` now also runs `D:\orisys_ws\scripts\doc_lint.py`, the
workspace's single documentation gate, alongside Ruff:

- changed Markdown by default, the whole corpus under --all
- `--files` names Python files explicitly, so it skips the doc gate
- `--no-docs` opts out
- the docs verdict is reported even when Ruff is missing, so a missing
  linter cannot hide it (the exit code still signals the environment problem)

The doc rules live in exactly one place on purpose: this file is duplicated
across three repositories and had already drifted, so adding a fourth copy of
lint logic would repeat the mistake. Failing checks are the documentation
budget, inventory membership, a declared kind, unresolved mojibake, paragraph
walls, and duplicate explanations across documents. Emphasis density is
advisory only - measured as a continuum from 12% to 48% across the corpus, so
no threshold separates signal from noise.

Pre-existing oversized documents are recorded as budget-exempt with a written
reason in D:\orisys_ws\docs\inventory.json, and pre-existing findings are
baselined there, so this gate is red only for new regression.

With Ruff unavailable in the current environment the doc half still reports,
which is how it was verified.
2026-09-30 16:12:30 +08:00
ykcheungab f0454253c2 new grayscale output for testing laser, not working, will change to new design 2026-09-30 16:12:06 +08:00
ykcheungab 37e3e8400b fix algining xynova texture to uv printing fixture. 2026-09-29 16:33:31 +08:00
ykcheungab 267334d543 fix cli redundant images
finger-xynova first design completed
2026-09-28 16:18:17 +08:00
ykcheungab 88922f21ef added multi-view support on full object texture 2026-09-28 10:47:00 +08:00
ykcheungab dd6eaefdf6 docs: repoint the workflow doc path; ignore .scratch/
sensor-design-workflow.md moved from the workspace root to
D:\orisys_ws\docs\workflow\ as part of the 2026-09-27 workspace cleanup; README.md
now gives the new path.

Also ignore .scratch/, the new per-task scratch directory (see
D:\orisys_ws\AGENTS.md).
2026-09-27 21:14:20 +08:00
ykcheungab e7dfd4f90b added ruff for code review 2026-09-27 19:21:03 +08:00
ykcheungab f91ac9d3db added uv unwarp export 2026-09-25 17:10:05 +08:00
ykcheungab c377c14474 1. added blender deformation probe for marker size picking and optimization
2. added unwarp map export in current cli, don't need to generate by precompute in sensor running
2026-09-25 15:44:44 +08:00
ykcheungab bc5a928852 added optics test (undergoing) 2026-09-23 10:01:08 +08:00
ykcheungab f9662df08c added mesh export preview 2026-09-20 13:46:58 +08:00
ykcheungab 39caecbfda added printability report when generating texture 2026-09-20 12:14:51 +08:00
ykcheungab 71c2a29ccb fixed xynova texture generation problem 2026-09-19 21:02:34 +08:00
ykcheungab 55bab861c3 update xynova texture generation yaml 2026-09-19 19:44:04 +08:00
ykcheungab a883288c13 added svg patch output 2026-09-19 15:08:57 +08:00
ykcheungab b1815b15ea adde produce + compute texture export 2026-09-18 11:25:09 +08:00
ykcheungab 026f495f77 migrated texture generation script to cli 2026-09-16 21:34:59 +08:00
ykcheungab a29ca6846c initial commit 2026-09-16 21:04:28 +08:00