This is the place to go for the most amazing and complete SDK to develop web augmented reality (webAR) solutions with open source software.
https://join.slack.com/t/webarkit/shared_invite/zt-154zcqgpj-S0Dg0j4DgvvWlORI2PC1NQ
This project forked from artoolkitx/jsartoolkit5
Javascript ARToolKit v5.x
Home Page: https://webarkit.github.io/jsartoolkit5/examples/
License: Other
This is the place to go for the most amazing and complete SDK to develop web augmented reality (webAR) solutions with open source software.
https://join.slack.com/t/webarkit/shared_invite/zt-154zcqgpj-S0Dg0j4DgvvWlORI2PC1NQ
the old problem
The difference is that i used webarkit/jsartoolkit5is latest,And the error occurs "artoolkit.setup is not a function" (from the three.js_multi_nft)
yeh, i want to use the function in Hololens;
ARnft it works in my computer,but not work in HoloLens;it has the same problem likes camera source
Hi @hiukim i'm testing your code that we discussed in the issue artoolkitx#95 in regards of your branch https://github.com/hiukim/jsartoolkit5/tree/fixnft Have you an example for testing the loadNFTMarkers
?
So the issue is the following:
using emscripten 1.39.5-fastcomp I get this error...
ports.fetch_project('libjpeg', 'https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz', 'jpeg-9c', sha512hash=HASH)
urllib2.HTTPError: HTTP Error 403: Forbidden
which is described as problem with that domain was taken down... and u need to upgrade emscript?!
here is the upstream issue
emscripten-core/emscripten#14760
using the latest emscripten... I get this error...
wasm-ld: error: unknown file type: ~/devel/jsartoolkit5/build/libar.bc
which can lead to the following issues:
emscripten-core/emscripten#13607 (comment)
emscripten-core/emscripten#14531 (comment)
emscripten-core/emscripten#15054
$ npm run build-local
> [email protected] build-local ~/devel/jsartoolkit5
> node tools/makem.js; echo Built at `date`
Warning: EMSCRIPTEN environment variable not found.
If you get a "command not found" error,
do `source <path to emsdk>/emsdk_env.sh` and try again.
Running command: emcc -I~/devel/jsartoolkit5/emscripten/artoolkit5/include -I~/devel/jsartoolkit5/build/ -I~/devel/jsartoolkit5/emscripten/ -I~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR/arLabelingSub/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARICP/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARMulti/*.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/Video/video.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARUtil/log.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/ARUtil/file_utils.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/handle.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/imageSet.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/jpeg.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/marker.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/featureMap.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/featureSet.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/surface.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/tracking.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/tracking2d.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/matching.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/matching2.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/template.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/searchPoint.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/coord.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/util.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmHandle.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmRefDataSet.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmMatching.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmResult.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmUtil.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/kpmFopen.c ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/DoG_scale_invariant_detector.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gaussian_scale_space_pyramid.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gradients.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/harris.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/orientation_assignment.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/hough_similarity_voting.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/freak.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/date_time.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/logger.cpp ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/timers.cpp -Oz -Wno-warn-absolute-paths -s TOTAL_MEMORY=268435456 -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0 -s ALLOW_MEMORY_GROWTH=1 --bind -D HAVE_NFT -o ~/devel/jsartoolkit5/build/libar.bc
stderr: ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c:279:41: warning: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Wimplicit-const-int-float-conversion]
k = (int)((float )j * rand() / (RAND_MAX + 1.0F));
^~~~~~~~ ~
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/stdlib.h:82:19: note: expanded from macro 'RAND_MAX'
#define RAND_MAX (0x7fffffff)
^~~~~~~~~~
1 warning generated.
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp:36:
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.h:99:14: warning: 'auto_ptr<unsigned short>' is deprecated [-Wdeprecated-declarations]
std::auto_ptr<unsigned short> mTmp;
^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/memory:1155:28: note: 'auto_ptr<unsigned short>' has been explicitly marked deprecated here
class _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX11 auto_ptr
^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config:990:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11'
# define _LIBCPP_DEPRECATED_IN_CXX11 _LIBCPP_DEPRECATED
^
~/devel/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__config:979:48: note: expanded from macro '_LIBCPP_DEPRECATED'
# define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
^
1 warning generated.
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp:37:
In file included from ~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database-inline.h:44:
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:83:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
void addImage(const Image& image, id_t id) throw(Exception);
^ ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:88:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
void addImage(const GaussianScaleSpacePyramid* pyramid, id_t id) throw(Exception);
^ ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:93:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
void addKeyframe(keyframe_ptr_t keyframe , id_t id) throw(Exception);
^ ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:98:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
bool query(const Image& image) throw(Exception);
^ ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:103:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
bool query(const GaussianScaleSpacePyramid* pyramid) throw(Exception);
^ ~~~~~~~~~~~~~~~~
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/visual_database.h:104:14: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
bool query(const keyframe_t* query_keyframe) throw(Exception);
^ ~~~~~~~~~~~~~~~~
6 warnings generated.
~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp:120:13: warning: dynamic exception specifications with types are currently ignored in wasm [-Wwasm-exception-spec]
void Image::alloc(ImageType type,
^
1 warning generated.
emcc: warning: generating an executable with an object extension (.bc). If you meant to build an object file please use `-c, `-r`, or `-shared` [-Wemcc]
Running command: emcc -I~/devel/jsartoolkit5/emscripten/artoolkit5/include -I~/devel/jsartoolkit5/build/ -I~/devel/jsartoolkit5/emscripten/ -I~/devel/jsartoolkit5/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher ~/devel/jsartoolkit5/build/libar.bc ~/devel/jsartoolkit5/emscripten/ARToolKitJS.cpp ~/devel/jsartoolkit5/emscripten/trackingMod.c ~/devel/jsartoolkit5/emscripten/trackingMod2d.c -Oz -Wno-warn-absolute-paths -s TOTAL_MEMORY=268435456 -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0 -s ALLOW_MEMORY_GROWTH=1 --bind -s WASM=0 -g -s ASSERTIONS=1 --profiling -s ALLOW_MEMORY_GROWTH=1 -s DEMANGLE_SUPPORT=1 -D HAVE_NFT --pre-js ~/devel/jsartoolkit5/js/artoolkit.api.js -o ~/devel/jsartoolkit5/build/artoolkit.debug.js
stderr: ~/devel/jsartoolkit5/emscripten/ARToolKitJS.cpp:454:22: warning: 'addNFTMarkers' has C-linkage specified, but returns incomplete type 'std::vector<int>' which could be incompatible with C [-Wreturn-type-c-linkage]
std::vector<int> addNFTMarkers(int id, std::vector<std::string> &datasetPathnames) {
^
1 warning generated.
wasm-ld: error: unknown file type: ~/devel/jsartoolkit5/build/libar.bc
emcc: error: '~/devel/emsdk/upstream/bin/wasm-ld -o ~/devel/jsartoolkit5/build/artoolkit.debug.wasm ~/devel/jsartoolkit5/build/libar.bc /tmp/emscripten_temp_f6hfgj_f/ARToolKitJS_0.o /tmp/emscripten_temp_f6hfgj_f/trackingMod_1.o /tmp/emscripten_temp_f6hfgj_f/trackingMod2d_2.o -L~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten ~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libz.a ~/devel/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libjpeg.a --whole-archive -lembind-rtti --no-whole-archive -lGL -lal -lhtml5 -lstubs-debug -lc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -ldlmalloc -lc_rt_wasm-optz -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --import-memory --export-if-defined=main --export-if-defined=emscripten_stack_get_end --export-if-defined=emscripten_stack_get_free --export-if-defined=emscripten_stack_init --export-if-defined=__cxa_demangle --export-if-defined=stackSave --export-if-defined=stackRestore --export-if-defined=stackAlloc --export-if-defined=__wasm_call_ctors --export-if-defined=fflush --export-if-defined=__errno_location --export-if-defined=malloc --export-if-defined=free --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-table -z stack-size=5242880 --initial-memory=268435456 --no-entry --max-memory=2147483648 --global-base=1024' failed (returned 1)
exec error: 1
docker is still downloading... i have slow internet here... will edit this if an error comes up
on docker:
$ docker exec emscripten npm run build-local
> [email protected] build-local /src
> node tools/makem.js; echo Built at `date`
Running command: /emsdk_portable/emscripten/sdk/emcc -I/src/emscripten/artoolkit5/include -I/src/build/ -I/src/emscripten/ -I/src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher /src/emscripten/artoolkit5/lib/SRC/AR/arLabelingSub/*.c /src/emscripten/artoolkit5/lib/SRC/AR/*.c /src/emscripten/artoolkit5/lib/SRC/ARICP/*.c /src/emscripten/artoolkit5/lib/SRC/ARMulti/*.c /src/emscripten/artoolkit5/lib/SRC/Video/video.c /src/emscripten/artoolkit5/lib/SRC/ARUtil/log.c /src/emscripten/artoolkit5/lib/SRC/ARUtil/file_utils.c /src/emscripten/artoolkit5/lib/SRC/AR2/handle.c /src/emscripten/artoolkit5/lib/SRC/AR2/imageSet.c /src/emscripten/artoolkit5/lib/SRC/AR2/jpeg.c /src/emscripten/artoolkit5/lib/SRC/AR2/marker.c /src/emscripten/artoolkit5/lib/SRC/AR2/featureMap.c /src/emscripten/artoolkit5/lib/SRC/AR2/featureSet.c /src/emscripten/artoolkit5/lib/SRC/AR2/selectTemplate.c /src/emscripten/artoolkit5/lib/SRC/AR2/surface.c /src/emscripten/artoolkit5/lib/SRC/AR2/tracking.c /src/emscripten/artoolkit5/lib/SRC/AR2/tracking2d.c /src/emscripten/artoolkit5/lib/SRC/AR2/matching.c /src/emscripten/artoolkit5/lib/SRC/AR2/matching2.c /src/emscripten/artoolkit5/lib/SRC/AR2/template.c /src/emscripten/artoolkit5/lib/SRC/AR2/searchPoint.c /src/emscripten/artoolkit5/lib/SRC/AR2/coord.c /src/emscripten/artoolkit5/lib/SRC/AR2/util.c /src/emscripten/artoolkit5/lib/SRC/KPM/kpmHandle.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmRefDataSet.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmMatching.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmResult.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmUtil.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/kpmFopen.c /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/DoG_scale_invariant_detector.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gaussian_scale_space_pyramid.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/gradients.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/harris.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/orientation_assignment.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/detectors/pyramid.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/hough_similarity_voting.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/matchers/freak.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/date_time.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/image.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/logger.cpp /src/emscripten/artoolkit5/lib/SRC/KPM/FreakMatcher/framework/timers.cpp -Oz -Wno-warn-absolute-paths -s TOTAL_MEMORY=268435456 -s USE_ZLIB=1 -s USE_LIBJPEG --memory-init-file 0 -s ALLOW_MEMORY_GROWTH=1 --bind -D HAVE_NFT -o /src/build/libar.bc
stderr: shared:WARNING: Assuming object file output in the absence of `-c`, based on output filename. Please add with `-c` or `-r` to avoid this warning
system_libs:INFO: retrieving port: libjpeg from https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz
Traceback (most recent call last):
File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 3704, in <module>
sys.exit(run(sys.argv))
File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1960, in run
compile_source_file(i, input_file)
File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1942, in compile_source_file
cmd = get_clang_command([input_file]) + ['-c', '-o', output_file]
File "/emsdk_portable/emscripten/tag-1.39.4/emcc.py", line 1913, in get_clang_command
args = system_libs.process_args(args, shared.Settings)
File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1762, in process_args
args = port.process_args(Ports, args, settings, shared)
File "/emsdk_portable/emscripten/tag-1.39.4/tools/ports/libjpeg.py", line 53, in process_args
get(ports, settings, shared)
File "/emsdk_portable/emscripten/tag-1.39.4/tools/ports/libjpeg.py", line 18, in get
ports.fetch_project('libjpeg', 'https://dl.bintray.com/homebrew/mirror/jpeg-9c.tar.gz', 'jpeg-9c', sha512hash=HASH)
File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1681, in fetch_project
retrieve()
File "/emsdk_portable/emscripten/tag-1.39.4/tools/system_libs.py", line 1629, in retrieve
f = urlopen(url)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
exec error: 1
Built at Fri Oct 29 22:18:21 UTC 2021
Hi,
i've been using this code for a cordova app which uses multiple nft markers. I would like to improve the loading of .fset; .iset; .fset3;
But first I'm trying to understand where is the bottleneck and which solutions there are.
It seems the bottleneck is when calling "addFreakFeaturesAndDescriptors"
Possible solutions:
"we need to find a specific compression method for the feature sets, improved for mobile devices; this would make the loading of the 3 files (.fset .iset .fset3) faster" https://www.kalwaltart.com/blog/2020/01/21/nft-natural-feature-tracking-with-jsartoolkit5/
Why not store the the whole db of the images in a file, instead of the fset of each marker? (https://github.com/webarkit/artoolkit5/blob/master/lib/SRC/KPM/FreakMatcher/facade/visual_database_facade.cpp#L44)
Thanks for your efforts, amazing stuff :)
We will discuss here the general improvement to this library. Here a list of features that we can add or test.
and other, this list will be updated.
Updated examples are now online with the link https://webarkit.github.io/jsartoolkit5/examples/
would be cool if the not compressed nfts would also work... to avoid that huge regression...
here the error messages:
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:12221
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:34869
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:379946
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:338082
_decompressZFT http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > Function:9
loadZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onSuccessZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
(Async: EventHandlerNonNull)
ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
addNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
loadNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:60
load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
<anonymous> self-hosted:1175
writeCallback http://localhost:8080/artoolkit/artoolkit_wasm.js:1
writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
(Async: EventHandlerNonNull)
ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
loadCamera http://localhost:8080/artoolkit/artoolkit_wasm.js:1
load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
ARCameraParam http://localhost:8080/artoolkit/artoolkit_wasm.js:1
load http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:50
onmessage http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:32
(Async: EventHandlerNonNull)
<anonymous> http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:28
uncaught exception: [object Object] 8 artoolkit_wasm.js:1:30652
quit_ http://localhost:8080/artoolkit/artoolkit_wasm.js:1
exit http://localhost:8080/artoolkit/artoolkit_wasm.js:1
_exit http://localhost:8080/artoolkit/artoolkit_wasm.js:1
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:380150
<anonymous> http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > WebAssembly.instantiate:338082
_decompressZFT http://localhost:8080/artoolkit/artoolkit_wasm.js line 1 > Function:9
loadZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onSuccessZFT http://localhost:8080/artoolkit/artoolkit_wasm.js:1
writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
(Async: EventHandlerNonNull)
ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
addNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
loadNFTMarkers http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:60
load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
<anonymous> self-hosted:1175
writeCallback http://localhost:8080/artoolkit/artoolkit_wasm.js:1
writeByteArrayToFS http://localhost:8080/artoolkit/artoolkit_wasm.js:1
onload http://localhost:8080/artoolkit/artoolkit_wasm.js:1
(Async: EventHandlerNonNull)
ajax http://localhost:8080/artoolkit/artoolkit_wasm.js:1
loadCamera http://localhost:8080/artoolkit/artoolkit_wasm.js:1
load http://localhost:8080/artoolkit/artoolkit_wasm.js:1
ARCameraParam http://localhost:8080/artoolkit/artoolkit_wasm.js:1
load http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:50
onmessage http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:32
(Async: EventHandlerNonNull)
<anonymous> http://localhost:8080/artoolkit/artoolkit.wasm_worker.js:28
I'm having issues when the image used to create the markers has mostly transparent backgrounds, that's because the SURF algorithm searches for the contrast between black on white or white on black, and that creates two opposites, mostly, white background images don't work with black background markers.
My proposal:
Detecting if the image has a mostly transparent background and adding that info on the marker files
Add a condition on the marker detection/tracking for the transparency flag
If the flag exists, use a background extraction algorithm and then a color replacement to white or to black while keeping the design colors(Like a green screen).
Didn't been tested yet, just a proposal and reminder of the issue. @kalwalt @ThorstenBux
@ThorstenBux actually i'm not sure that the action script works as expected, i would improve this. I will investigate why it is failing and how we can fix it.
It's needed to update the NFT examples and provide at least a working example with new multi NFT markers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.