@ar-js-org/artoolkit5-ts 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +243 -224
- package/LICENSE +28 -28
- package/README.md +365 -365
- package/package.json +69 -69
package/CHANGELOG.md
CHANGED
|
@@ -1,224 +1,243 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project are documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [Unreleased]
|
|
9
|
-
|
|
10
|
-
## [0.2.
|
|
11
|
-
|
|
12
|
-
###
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
`
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
`
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
###
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
- `
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
- `
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.2.2] - 2026-09-19
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Releases now publish to npm through trusted publishing (OIDC) rather than an
|
|
15
|
+
automation token. For consumers the visible effect is that the published
|
|
16
|
+
package carries a provenance attestation again, verifiable with
|
|
17
|
+
`npm view @ar-js-org/artoolkit5-ts@<version> dist.attestations`.
|
|
18
|
+
|
|
19
|
+
0.2.0 and 0.2.1 have no attestation. The package requires 2FA to publish,
|
|
20
|
+
which rejects automation tokens, so the workflow's publish step failed on
|
|
21
|
+
both and each was completed by hand — and npm only generates provenance from
|
|
22
|
+
a supported CI provider. 0.1.0, published from CI before that setting
|
|
23
|
+
changed, does have one.
|
|
24
|
+
|
|
25
|
+
Nothing in the library changed. The code published as 0.2.2 is the code
|
|
26
|
+
published as 0.2.1.
|
|
27
|
+
|
|
28
|
+
## [0.2.1] - 2026-09-19
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- `MarkerPose.vertex` — the four corners of the detected square, in camera
|
|
33
|
+
image coordinates with the origin at top-left. Closes #54.
|
|
34
|
+
|
|
35
|
+
The WASM binding already returned these; only the TypeScript types and
|
|
36
|
+
`processFrame` did not carry them through, so no rebuild of
|
|
37
|
+
`@ar-js-org/artoolkit5-wasm` was needed. `MarkerInfo.vertex` is declared
|
|
38
|
+
for the same reason.
|
|
39
|
+
|
|
40
|
+
Unlike `matrix` and `matrixGL`, which are views onto buffers reused every
|
|
41
|
+
frame, `vertex` is freshly allocated per frame and is safe to retain
|
|
42
|
+
without copying. Corner order depends on the marker's rotation —
|
|
43
|
+
`vertex[(4 - dir) % 4]` is the marker's top-left corner, the rest clockwise
|
|
44
|
+
from there — which matters for anything orientation-sensitive and not at all
|
|
45
|
+
for outlining the square.
|
|
46
|
+
|
|
47
|
+
Corners let a consumer draw a marker outline, hit-test or build an occlusion
|
|
48
|
+
mask without needing the camera projection matrix at all.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- `MarkerInfo` gained `vertex` as a **required** field. Nothing in the
|
|
53
|
+
library constructs a `MarkerInfo` — they come from the WASM binding, which
|
|
54
|
+
already supplied corners — but a hand-written `ARToolKitCore` double in a
|
|
55
|
+
consumer's tests now fails to typecheck until it supplies four points.
|
|
56
|
+
|
|
57
|
+
- Lockfile moved onto `@ar-js-org/artoolkit5-constants` 0.3.1, whose published
|
|
58
|
+
metadata now correctly declares MIT rather than GPL-3.0. No code changed
|
|
59
|
+
upstream; only the declaration was wrong. Closes #53.
|
|
60
|
+
|
|
61
|
+
## [0.2.0] - 2026-09-17
|
|
62
|
+
|
|
63
|
+
### Upgrading from 0.1.0
|
|
64
|
+
|
|
65
|
+
Three changes need action. Each is described in full further down; this is the
|
|
66
|
+
short list for anyone upgrading.
|
|
67
|
+
|
|
68
|
+
1. **`state.markers` is gone**, replaced by `state.patternMarkers` and
|
|
69
|
+
`state.barcodeMarkers`. Read the one matching the family you registered.
|
|
70
|
+
2. **`FrameResult.lost` now holds objects, not numbers** — `LostMarker`
|
|
71
|
+
(`{ id, type }`) rather than a bare ID. This is the one to look for: it does
|
|
72
|
+
not throw, so `lost.forEach((id) => hide(id))` keeps running and silently
|
|
73
|
+
stops matching anything. Use `lost.forEach(({ id }) => hide(id))`, and note
|
|
74
|
+
that `id` alone is no longer unique across families.
|
|
75
|
+
3. **Several `configureDetector` option values were respelled** — see the table
|
|
76
|
+
under Changed. TypeScript catches these; plain JavaScript gets a thrown
|
|
77
|
+
`ARToolKitError` naming the option and listing the valid values.
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
|
|
81
|
+
- `configureDetector(state, opts)` — detector tuning: `detectionMode`, `matrixCodeType`,
|
|
82
|
+
`threshold`, `thresholdMode`, `labelingMode`, `imageProcMode`, `patternRatio`,
|
|
83
|
+
`nearPlane`, `farPlane`, and `minConfidence` (described below). Applies only the
|
|
84
|
+
keys present, so a later call can adjust a single setting mid-session.
|
|
85
|
+
- `@ar-js-org/artoolkit5-constants` as a direct dependency (`^0.3.0`). All ARToolKit5
|
|
86
|
+
integers used internally come from it — `src/config.ts` is the only module in
|
|
87
|
+
the codebase that imports one.
|
|
88
|
+
- `trackBarcodeMarker(state, barcodeId, markerWidth?)` — registers a barcode
|
|
89
|
+
(matrix code) marker. Unlike a pattern marker there is nothing to load first:
|
|
90
|
+
the ID is encoded in the marker's geometry, not assigned by the engine.
|
|
91
|
+
- `MarkerType` (`'pattern' | 'barcode'`) on `MarkerPose`, and `LostMarker`
|
|
92
|
+
(`{ id, type }`) as the element type of `FrameResult.lost`.
|
|
93
|
+
- **Independent ID spaces for the two marker families.** `ARToolKitState` now holds
|
|
94
|
+
separate `patternMarkers` and `barcodeMarkers` registries instead of a single
|
|
95
|
+
`markers` map, so a pattern marker and a barcode marker may both be registered
|
|
96
|
+
as `7` and tracked simultaneously. Pattern IDs are engine-assigned from 0 while
|
|
97
|
+
barcode IDs are chosen by whoever printed the marker, so collisions are ordinary
|
|
98
|
+
rather than exceptional — `patt.hiro` is ID `0`. The engine reports each family
|
|
99
|
+
through its own field (`idPatt` / `idMatrix`), and each is matched only against
|
|
100
|
+
its own registry. This mirrors `artoolkit5-js`, which has kept the two separate
|
|
101
|
+
all along. ([#36](https://github.com/AR-js-org/artoolkit5-ts/issues/36))
|
|
102
|
+
- **Combined pattern+barcode detection.** `'color_and_matrix'` and `'mono_and_matrix'` detect
|
|
103
|
+
both marker families in a single frame, verified against a real camera rather than a
|
|
104
|
+
mock. This required a fix in the WASM binding, which exposed only a field the engine
|
|
105
|
+
leaves unassigned in those modes
|
|
106
|
+
([artoolkit5-wasm#23](https://github.com/AR-js-org/artoolkit5-wasm/issues/23)); see
|
|
107
|
+
`docs/DESIGN-detector-and-barcode.md` §9 for the full analysis. `examples/barcode/`
|
|
108
|
+
gained a detection-mode switcher and a per-frame detection log demonstrating it.
|
|
109
|
+
- **Match confidence, and a per-family `minConfidence` filter.** `MarkerPose` gains
|
|
110
|
+
`confidence` (0–1, read from the matching family's own `cfPatt`/`cfMatrix`), and
|
|
111
|
+
`configureDetector` gains `minConfidence: { pattern?, barcode? }`.
|
|
112
|
+
|
|
113
|
+
Unlike every other detector option this one never reaches the engine: ARToolKit's
|
|
114
|
+
confidence cutoff is a compile-time constant with no setter, so the threshold is
|
|
115
|
+
applied by `processFrame` and can only ever be stricter than the built-in 0.5.
|
|
116
|
+
|
|
117
|
+
The families take separate thresholds because their confidences are not comparable,
|
|
118
|
+
and **both default to `0`** — nothing is filtered unless you ask for it. Measured on a
|
|
119
|
+
real camera, the genuine and false ranges overlap for both families: a genuine pattern
|
|
120
|
+
match scored `0.506` against a false one at `0.554`, and a genuine barcode scored
|
|
121
|
+
`0.500` at an awkward angle while a phantom barcode reached `0.867`. The same barcode
|
|
122
|
+
marker ranged `0.500`–`0.967` across viewing angles. Confidence is a continuous quality
|
|
123
|
+
score for both families rather than a verdict, so no threshold avoids both missed
|
|
124
|
+
markers and admitted phantoms; the README documents the measurements and the trade-off.
|
|
125
|
+
([#38](https://github.com/AR-js-org/artoolkit5-ts/issues/38))
|
|
126
|
+
- `examples/barcode/`, tracking a 3x3 matrix code marker. `examples/index.html`
|
|
127
|
+
now links to both examples.
|
|
128
|
+
|
|
129
|
+
### Changed
|
|
130
|
+
|
|
131
|
+
- **`configureDetector`'s option values now use spellings also used by AR.js.** This is a
|
|
132
|
+
deliberate public-vocabulary choice; the `artoolkit5-js` peer exposes raw numeric modes
|
|
133
|
+
rather than these strings:
|
|
134
|
+
|
|
135
|
+
| was | now |
|
|
136
|
+
|---|---|
|
|
137
|
+
| `'color+matrix'` | `'color_and_matrix'` |
|
|
138
|
+
| `'mono+matrix'` | `'mono_and_matrix'` |
|
|
139
|
+
| `'black-region'` / `'white-region'` | `'black_region'` / `'white_region'` |
|
|
140
|
+
| `'auto-median'` / `'auto-otsu'` / `'auto-bracketing'` | `'auto_median'` / `'auto_otsu'` / `'auto_bracketing'` |
|
|
141
|
+
| `'3x3_hamming63'`, `'4x4_bch_13_9_3'`, … | `'3x3_HAMMING63'`, `'4x4_BCH_13_9_3'`, … |
|
|
142
|
+
| option `pattRatio` | option `patternRatio` |
|
|
143
|
+
|
|
144
|
+
`'matrix'` keeps its name — AR.js exposes no equivalent. `thresholdMode` and
|
|
145
|
+
`imageProcMode` have no AR.js counterpart at all, so their values simply follow
|
|
146
|
+
the same snake_case convention for internal consistency.
|
|
147
|
+
|
|
148
|
+
This deliberately inherits one wart from AR.js: snake_case for mode names but
|
|
149
|
+
SCREAMING_SNAKE for matrix algorithm suffixes. Matching the ecosystem was judged
|
|
150
|
+
worth more than tidiness in isolation. ([#34](https://github.com/AR-js-org/artoolkit5-ts/issues/34))
|
|
151
|
+
|
|
152
|
+
- **`FrameResult.lost` is now `LostMarker[]` rather than `number[]`.** It carries
|
|
153
|
+
`type` alongside `id` because the two families have independent ID spaces, so an
|
|
154
|
+
ID on its own can no longer say which marker disappeared. Unlike the respellings
|
|
155
|
+
above this one is silent in plain JavaScript — the array is still iterable and
|
|
156
|
+
still the right length, the elements are simply objects now.
|
|
157
|
+
|
|
158
|
+
- Depends on `@ar-js-org/artoolkit5-wasm@^0.3.0`, up from `^0.1.3`. `0.3.0` is required,
|
|
159
|
+
not merely preferred: it is the first release to bind `idPatt`/`idMatrix`, without
|
|
160
|
+
which the combined detection modes silently report nothing or the wrong marker.
|
|
161
|
+
|
|
162
|
+
### Removed
|
|
163
|
+
|
|
164
|
+
- **`ARToolKitState.markers`**, replaced by the `patternMarkers` and `barcodeMarkers`
|
|
165
|
+
registries described under Added. There is no combined view: the two families have
|
|
166
|
+
independent ID spaces, so merging them back into one map is exactly the collision
|
|
167
|
+
the split exists to prevent.
|
|
168
|
+
|
|
169
|
+
### Notes
|
|
170
|
+
|
|
171
|
+
`thresholdMode: 'auto_adaptive'` is not offered: the WebARKitLib build this
|
|
172
|
+
library ships compiles that mode's implementation out, and passing it would
|
|
173
|
+
silently degrade to `'manual'`.
|
|
174
|
+
|
|
175
|
+
`matrixCodeType: 'global_id'` is not offered either. The engine decodes that
|
|
176
|
+
mode into `markerInfo->globalID`, a 64-bit field the WASM binding does not
|
|
177
|
+
expose ([artoolkit5-wasm#29](https://github.com/AR-js-org/artoolkit5-wasm/issues/29)),
|
|
178
|
+
so nothing here can read the result. Worse than unreadable, it would alias:
|
|
179
|
+
the engine also reports the code through `idMatrix`, where a global ID below
|
|
180
|
+
32768 arrives as itself but every larger one arrives as `0`. A barcode
|
|
181
|
+
registered as `0` would match every large global-ID marker in view. Re-adding
|
|
182
|
+
the option once the field is bound is a non-breaking addition.
|
|
183
|
+
([#41](https://github.com/AR-js-org/artoolkit5-ts/issues/41))
|
|
184
|
+
|
|
185
|
+
## [0.1.0] - 2026-08-16
|
|
186
|
+
|
|
187
|
+
### Added
|
|
188
|
+
|
|
189
|
+
- `createARToolKitState` / `disposeARToolKitState` — lifecycle. Dispose calls
|
|
190
|
+
the core's `teardown()` and then Embind's `delete()`; skipping the first leaks
|
|
191
|
+
the ARToolKit handles the instance owns. Idempotent.
|
|
192
|
+
- `ARToolKitError`, thrown by every operation called on a disposed state, so a
|
|
193
|
+
use-after-dispose names the misused function instead of crashing somewhere
|
|
194
|
+
inside the WASM module.
|
|
195
|
+
- `loadPatternMarker` and `trackMarker` for registering markers.
|
|
196
|
+
- `processFrame`, returning `{ detected, lost }`.
|
|
197
|
+
- `getCameraProjectionMatrix`, `transMatToGLMat` and `arglCameraViewRHf`.
|
|
198
|
+
- Vitest suite covering the matrix maths, the visibility state machine and the
|
|
199
|
+
dispose lifecycle, running without WASM or a browser against a mocked core.
|
|
200
|
+
- CI on Node 22 and 24: typecheck, test, build, and a packaging check.
|
|
201
|
+
- Release workflow, run manually with a version. It runs the checks, sets the
|
|
202
|
+
version, promotes this changelog, derives notes from the commits, tags,
|
|
203
|
+
creates the GitHub Release and publishes to npm with provenance. A `dry_run`
|
|
204
|
+
input rehearses all of it without tagging or publishing.
|
|
205
|
+
- `scripts/release-notes.mjs`, which groups Conventional Commits since the
|
|
206
|
+
previous tag so release notes reflect what actually landed, and
|
|
207
|
+
`scripts/promote-changelog.mjs`, which promotes the Unreleased section.
|
|
208
|
+
- Webcam example: camera to Three.js cube overlay.
|
|
209
|
+
- This changelog.
|
|
210
|
+
|
|
211
|
+
### Changed
|
|
212
|
+
|
|
213
|
+
- `processFrame` returns `{ detected, lost }` rather than `MarkerPose[]`. The
|
|
214
|
+
visibility transition was already computed internally and then discarded,
|
|
215
|
+
forcing consumers to diff successive results to recover it.
|
|
216
|
+
- Named `@ar-js-org/artoolkit5-ts`, matching the rest of the organisation.
|
|
217
|
+
- Depends on `@ar-js-org/artoolkit5-wasm@^0.1.3` from npm rather than a pinned
|
|
218
|
+
git commit. `three` moved to `devDependencies`; only the examples use it.
|
|
219
|
+
|
|
220
|
+
### Fixed
|
|
221
|
+
|
|
222
|
+
- `arglCameraViewRHf` allocated a `Float64Array` while every type declaration
|
|
223
|
+
promised `Float32Array`. Consumers reading `matrixGL` would have received a
|
|
224
|
+
different array type than the published types described, and the AR.js-next
|
|
225
|
+
marker event contract specifies `Float32Array(16)`.
|
|
226
|
+
- `processFrame` allocated roughly three typed arrays per marker per frame. Both
|
|
227
|
+
matrix helpers now write into caller-supplied buffers, with one module-scoped
|
|
228
|
+
scratch array for the intermediate 4×4.
|
|
229
|
+
- Debug logging removed from `src/`, which dumped the entire WASM module to the
|
|
230
|
+
console on every marker load and every `trackMarker` call.
|
|
231
|
+
- `favicon.svg` and orphaned `.d.ts.map` files no longer ship in the package.
|
|
232
|
+
|
|
233
|
+
### Notes
|
|
234
|
+
|
|
235
|
+
Pattern markers only. Barcode support is planned; NFT is out of scope for this
|
|
236
|
+
project. Worker compatibility is untested — nothing in `src/` touches the DOM,
|
|
237
|
+
which is necessary but not proof.
|
|
238
|
+
|
|
239
|
+
[Unreleased]: https://github.com/AR-js-org/artoolkit5-ts/compare/v0.2.2...HEAD
|
|
240
|
+
[0.2.2]: https://github.com/AR-js-org/artoolkit5-ts/compare/v0.2.1...v0.2.2
|
|
241
|
+
[0.2.1]: https://github.com/AR-js-org/artoolkit5-ts/compare/v0.2.0...v0.2.1
|
|
242
|
+
[0.2.0]: https://github.com/AR-js-org/artoolkit5-ts/compare/v0.1.0...v0.2.0
|
|
243
|
+
[0.1.0]: https://github.com/AR-js-org/artoolkit5-ts/releases/tag/v0.1.0
|
package/LICENSE
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 AR-js-org
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
This library wraps a WebAssembly build of ARToolkit5 (WebARKitLib), which is
|
|
26
|
-
licensed under the GNU Lesser General Public License v3.0. Redistributing a
|
|
27
|
-
build that includes the ARToolkit5 (WebARKitLib) WebAssembly binary carries the
|
|
28
|
-
obligations of that licence in addition to the terms above.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AR-js-org
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
This library wraps a WebAssembly build of ARToolkit5 (WebARKitLib), which is
|
|
26
|
+
licensed under the GNU Lesser General Public License v3.0. Redistributing a
|
|
27
|
+
build that includes the ARToolkit5 (WebARKitLib) WebAssembly binary carries the
|
|
28
|
+
obligations of that licence in addition to the terms above.
|