Code Monkey home page Code Monkey logo

alanross / alvaar Goto Github PK

View Code? Open in Web Editor NEW
318.0 31.0 64.0 127.76 MB

World tracking for WebAR. A Javascript library for Augmented Reality to run SLAM in the browser.

License: GNU General Public License v3.0

CMake 2.45% Lua 0.01% C++ 84.83% Shell 0.09% Python 3.01% Starlark 0.02% C 2.95% HTML 0.56% Cuda 0.72% Fortran 1.95% XSLT 0.01% JavaScript 0.42% CSS 0.02% TeX 0.08% Java 1.67% Swift 0.46% Kotlin 0.01% Objective-C 0.15% Objective-C++ 0.58% Perl 0.02%
augmented-reality javascript slam threejs wasm webar webassembly webcam opencv

alvaar's Introduction

AlvaAR

AlvaAR is a realtime visual SLAM algorithm running as WebAssembly, in the browser. It is a heavily modified version of the OV²SLAM and ORB-SLAM2 projects. SLAM is the core building block of Augmented Reality applications focusing on world tracking.

image

Examples

The examples use ThreeJS to apply and render the estimated camera pose to a 3d environment.

Video Demo: A desktop browser version using a video file as input.
Camera Demo: The mobile version will access the device camera as input.

Run with http server

To run the examples on your local machine, start a simple http server in the examples/ folder:

$: python 2: python -m SimpleHTTPServer 8080 or
$: python 3: python -m http.server 8080 or
$: emrun --browser chrome ./

Then open http://localhost:8080/public/video.html in your browser.

Run with https server

To run the examples on another device in your local network, they must be served via https. For convenience, a simple https server was added to this project – do not use for production.

1) Install server dependencies

    $: cd ./AlvaAR/examples/
    $: npm install

2) Generate self-signed certificate

    $: cd ./AlvaAR/examples
    $: mkdir ssl/
    $: cd ssl/
    $: openssl req -nodes -new -x509 -keyout key.pem -out cert.pem

3) Run

    $: cd ./AlvaAR/examples/
    $: nvm use 13.2
    $: npm start

Then open https://YOUR_IP:443/video.html in your browser. If met with a ERR_CERT_INVALID error in Chrome, try typing badidea or thisisunsafe directly in Chrome on the same page. Don’t do this unless the site is one you trust or develop.

Usage

This code shows how to send image data to AlvaAR to compute the camera pose.

import { AlvaAR } from 'alva_ar.js';

const videoOrWebcam = /*...*/;

const width = videoOrWebcam.width;
const height = videoOrWebcam.height;

const canvas = document.getElementById( 'canvas' );
const ctx = canvas.getContext( '2d' );

canvas.width = width;
canvas.height = height;

const alva = await AlvaAR.Initialize( width, height );

function loop()
{
    ctx.clearRect( 0, 0, width, height );
    ctx.drawImage( videoOrWebcam, 0, 0, width, height );
    
    const frame = ctx.getImageData( 0, 0, width, height );
    
    // cameraPose holds the rotation/translation information where the camera is estimated to be
    const cameraPose = alva.findCameraPose( frame );
    
    // planePose holds the rotation/translation information of a detected plane
    const planePose = alva.findPlane();
    
    // The tracked points in the frame
    const points = alva.getFramePoints();

    for( const p of points )
    {
        ctx.fillRect( p.x, p.y, 2, 2 );
    }
};

Build

Prerequisites

Emscripten

Ensure Emscripten is installed and activated in your session.

    $: source [PATH]/emsdk/emsdk_env.sh 
    $: emcc -v

C++11 or Higher

Alva makes use of C++11 features and should thus be compiled with a C++11 or higher flag.

Dependencies

Dependency Description
Eigen3 Download Eigen 3.4. Find all releases here.This project has been tested with 3.4.0
OpenCV Download OpenCV 4.5. Find all releases here.This project has been tested with 4.5.5.
iBoW-LCD A modified version of iBoW-LCD is included in the libs folder. It has been turned into a static shared lib. Same goes for OBIndex2, the required dependency for iBoW-LCD. Check the lcdetector.h and lcdetector.cc files to see the modifications w.r.t. to the original code. Both CMakeList have been adjusted to work with Emscripten.
Sophus Sophus is used for SE(3), SO(3) elements representation.
Ceres Solver Ceres is used for optimization related operations such as PnP, Bundle Adjustment or PoseGraph Optimization. Note that Ceres dependencies are still required.
OpenGV OpenGV is used for Multi-View-Geometry (MVG) operations.

Build Dependencies

For convenience, a copy of all required libraries has been included in the libs/ folder. Run the following script to compile all libraries to wasm modules which can be linked into the main project.

    $: cd ./AlvaAR/src/libs/
    $: ./build.sh

Build Project

Run the following in your shell before invoking emcmake or emmake:

    $: [PATH]/emsdk/emsdk_env.sh

Then, run the following:

    $: cd ./AlvaAR/src/slam
    $: mkdir build/
    $: cd build/
    $: emcmake cmake .. 
    $: emmake make install

Roadmap

  • Improve the initialisation phase to be more stable and predictable.
  • Move feature extraction and tracking to GPU.
  • Blend visual SLAM with IMU data to increase robustness.

License

AlvaAR is released under the GPLv3 license.

OV²SLAM and ORB-SLAM2 are both released under the GPLv3 license. Please see 3rd party dependency licenses in libs/.

Contact

Alan Ross: @alan_ross or [email protected]
Project: https://github.com/alanross/AlvaAR

alvaar's People

Contributors

alanross avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alvaar's Issues

Is there any way place an object on click

HI, on your camera example
you have the reset function on click and when a camera pose is detected you auto apear the three mesh

is there any way to capture the click (like the webxt controller(0) after recognizing the space and place it on a surface ?

thank you in advanced !

it really cool yout lib and i am trying to see how i could add it in any xr project!

Wasmer build ?

Since WASMER project is up i was thinking about making cross platform implementation of slam module, is there a way to compile this project using WASMER and WASI to make it for example desktop friendly ?

About AlvaAR and its development.

Hi @alanross thanks for this very interesting project, I am a fan of WebAR, me and @ThorstenBux are the owners of WebARKit. I tested your examples and i'm wondering if i can do something to improve them. With the video example i got a decent fps instead i got less fps with the camera example. I also looked quickly at your code and saw that it is based on OpenCV and other libs compiled to WASM with emscripten. In the past @nickw1 started to do a project in this topic, maybe if we join forces we can improve it.

Errors during libs build

Hi Alan,

I have been struggling to succesfully build the dependencies and thus the slam wasm for a while now. I am hoping you can point me in the right direction of the correct emscripten version to use or point out anything else I am missing. The logs below are only for Eigen, but I get similar fails in all dependency builds

I am on:

macOS: Monterey 12.6.7
node: 16.20.0
python: 3.7

and while Ive tried a few emsdk versions, including latest this was the last attempts versioning:

emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.34 (0d24418f0eac4828f096ee070dae8472d427edaa)
clang version 14.0.0 (https://github.com/llvm/llvm-project 3d39612b3dd3f6b67ee63da305d30606abbe7287)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /Users/p.thomas/emsdk/upstream/bin

Console out:

`Compiling with DEFAULT settings
Step 1/1 -------------------------------- Start building: EIGEN 
configure: cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/Users/p.thomas/realityBLU/emsdk/node/16.20.0_64bit/bin/node .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DCMAKE_TOOLCHAIN_FILE=/Users/p.thomas/RealityBLU/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake "-DCMAKE_CXX_FLAGS=-O3 -std=c++17" "-DCMAKE_C_FLAGS=-O3 -std=c++17" -DCMAKE_INSTALL_PREFIX=/Users/p.thomas/realityBLU/AlvaAR/src/libs/build/eigen/ -DBUILD_SHARED_LIBS=OFF
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11 - Success
-- Performing Test COMPILER_SUPPORT_std=cpp03
-- Performing Test COMPILER_SUPPORT_std=cpp03 - Success
-- Performing Test standard_math_library_linked_to_automatically
-- Performing Test standard_math_library_linked_to_automatically - Success
-- Standard libraries to link to explicitly: none
-- Performing Test COMPILER_SUPPORT_WERROR
-- Performing Test COMPILER_SUPPORT_WERROR - Success
-- Performing Test COMPILER_SUPPORT_pedantic
-- Performing Test COMPILER_SUPPORT_pedantic - Success
-- Performing Test COMPILER_SUPPORT_Wall
-- Performing Test COMPILER_SUPPORT_Wall - Success
-- Performing Test COMPILER_SUPPORT_Wextra
-- Performing Test COMPILER_SUPPORT_Wextra - Success
-- Performing Test COMPILER_SUPPORT_Wundef
-- Performing Test COMPILER_SUPPORT_Wundef - Success
-- Performing Test COMPILER_SUPPORT_Wcastalign
-- Performing Test COMPILER_SUPPORT_Wcastalign - Success
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts
-- Performing Test COMPILER_SUPPORT_Wcharsubscripts - Success
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor
-- Performing Test COMPILER_SUPPORT_Wnonvirtualdtor - Success
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs
-- Performing Test COMPILER_SUPPORT_Wunusedlocaltypedefs - Success
-- Performing Test COMPILER_SUPPORT_Wpointerarith
-- Performing Test COMPILER_SUPPORT_Wpointerarith - Success
-- Performing Test COMPILER_SUPPORT_Wwritestrings
-- Performing Test COMPILER_SUPPORT_Wwritestrings - Success
-- Performing Test COMPILER_SUPPORT_Wformatsecurity
-- Performing Test COMPILER_SUPPORT_Wformatsecurity - Success
-- Performing Test COMPILER_SUPPORT_Wshorten64to32
-- Performing Test COMPILER_SUPPORT_Wshorten64to32 - Success
-- Performing Test COMPILER_SUPPORT_Wlogicalop
-- Performing Test COMPILER_SUPPORT_Wlogicalop - Failed
-- Performing Test COMPILER_SUPPORT_Wenumconversion
-- Performing Test COMPILER_SUPPORT_Wenumconversion - Success
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions
-- Performing Test COMPILER_SUPPORT_Wcpp11extensions - Success
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion
-- Performing Test COMPILER_SUPPORT_Wdoublepromotion - Success
-- Performing Test COMPILER_SUPPORT_Wshadow
-- Performing Test COMPILER_SUPPORT_Wshadow - Success
-- Performing Test COMPILER_SUPPORT_Wnopsabi
-- Performing Test COMPILER_SUPPORT_Wnopsabi - Success
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros
-- Performing Test COMPILER_SUPPORT_Wnovariadicmacros - Success
-- Performing Test COMPILER_SUPPORT_Wnolonglong
-- Performing Test COMPILER_SUPPORT_Wnolonglong - Success
-- Performing Test COMPILER_SUPPORT_fnochecknew
-- Performing Test COMPILER_SUPPORT_fnochecknew - Success
-- Performing Test COMPILER_SUPPORT_fnocommon
-- Performing Test COMPILER_SUPPORT_fnocommon - Success
-- Performing Test COMPILER_SUPPORT_fstrictaliasing
-- Performing Test COMPILER_SUPPORT_fstrictaliasing - Success
-- Performing Test COMPILER_SUPPORT_wd981
-- Performing Test COMPILER_SUPPORT_wd981 - Failed
-- Performing Test COMPILER_SUPPORT_wd2304
-- Performing Test COMPILER_SUPPORT_wd2304 - Failed
-- Performing Test COMPILER_SUPPORT_STRICTANSI
-- Performing Test COMPILER_SUPPORT_STRICTANSI - Failed
-- Performing Test COMPILER_SUPPORT_Qunusedarguments
-- Performing Test COMPILER_SUPPORT_Qunusedarguments - Success
-- Performing Test COMPILER_SUPPORT_ansi
-- Performing Test COMPILER_SUPPORT_ansi - Success
-- Performing Test COMPILER_SUPPORT_OPENMP
-- Performing Test COMPILER_SUPPORT_OPENMP - Success
-- Found unsuitable Qt version "" from NOTFOUND
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - NOTFOUND
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - no
-- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES) 
-- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES) 
-- Could NOT find KLU (missing: KLU_INCLUDES KLU_LIBRARIES) 
-- Could NOT find SuperLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK) (Required is at least version "4.0")
-- A version of Pastix has been found but pastix_nompi.h does not exist in the include directory. Because Eigen tests require a version without MPI, we disable the Pastix backend.
-- Could NOT find SPQR (missing: SPQR_INCLUDES SPQR_LIBRARIES) 
-- Found unsuitable Qt version "" from NOTFOUND
-- Performing Test COMPILER_SUPPORT_FASTMATH
-- Performing Test COMPILER_SUPPORT_FASTMATH - Success
-- Could NOT find Boost (missing: Boost_INCLUDE_DIR) (Required is at least version "1.53.0")
-- Could NOT find Threads (missing: Threads_FOUND) 
-- Could NOT find GoogleHash (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE) 
-- Could NOT find Adolc (missing: ADOLC_INCLUDES ADOLC_LIBRARIES) 
-- Could NOT find MPFR (missing: MPFR_INCLUDES MPFR_LIBRARIES MPFR_VERSION_OK) (Required is at least version "1.0.0")
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version "7.0")
-- Found unsuitable Qt version "" from NOTFOUND
-- Qt4 not found, so disabling the mandelbrot and opengl demos
CMake Error: File /Users/p.thomas/realityBLU/AlvaAR/src/libs/eigen/scripts/buildtests.in does not exist.
CMake Error at scripts/CMakeLists.txt:2 (configure_file):
  configure_file Problem configuring file


-- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES) 
-- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES) 
-- Could NOT find KLU (missing: KLU_INCLUDES KLU_LIBRARIES) 
-- Could NOT find SuperLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK) (Required is at least version "4.0")
-- A version of Pastix has been found but pastix_nompi.h does not exist in the include directory. Because Eigen tests require a version without MPI, we disable the Pastix backend.
-- ************************************************************
-- ***    Eigen's unit tests configuration summary          ***
-- ************************************************************
-- 
-- Build type:        Release
-- Build site:        humanCron-3.local
-- Build string:      emscripten-1-clang++-2.0.34-32bit
-- Enabled backends:  
-- Disabled backends: CHOLMOD,  UMFPACK,  KLU,  SuperLU,  PaStiX,  METIS,  SPQR,  Qt4 support,  Boost.Multiprecision,  GoogleHash,  Adolc,  MPFR C++,  fftw,  OpenGL, 
-- Default order:     Column-major
-- Maximal matrix/vector size: 320
-- SSE2:              Using architecture defaults
-- SSE3:              Using architecture defaults
-- SSSE3:             Using architecture defaults
-- SSE4.1:            Using architecture defaults
-- SSE4.2:            Using architecture defaults
-- AVX:               Using architecture defaults
-- AVX2:              Using architecture defaults
-- FMA:               Using architecture defaults
-- AVX512:            Using architecture defaults
-- AVX512DQ:          Using architecture defaults
-- Altivec:           Using architecture defaults
-- VSX:               Using architecture defaults
-- MIPS MSA:          Using architecture defaults
-- ARM NEON:          Using architecture defaults
-- ARMv8 NEON:        Using architecture defaults
-- S390X ZVECTOR:     Using architecture defaults
-- C++11:             OFF
-- SYCL:              OFF
-- CUDA:              OFF
-- HIP:               OFF
-- 
CXX:               /Users/p.thomas/RealityBLU/emsdk/upstream/emscripten/em++
 CXX_FLAGS:         -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Qunused-arguments -ansi
 Sparse lib flags:   

-- ************************************************************
-- 
-- Configured Eigen 3.4.0
-- 
-- Available targets (use: make TARGET):
-- ---------+--------------------------------------------------------------
-- Target   |   Description
-- ---------+--------------------------------------------------------------
-- install  | Install Eigen. Headers will be installed to:
--          |     <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
--          |   Using the following values:
--          |     CMAKE_INSTALL_PREFIX: /Users/p.thomas/realityBLU/AlvaAR/src/libs/build/eigen
--          |     INCLUDE_INSTALL_DIR:  include/eigen3
--          |   Change the install location of Eigen headers using:
--          |     cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
--          |   Or:
--          |     cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- doc      | Generate the API documentation, requires Doxygen & LaTeX
-- check    | Build and run the unit-tests. Read this page:
--          |   http://eigen.tuxfamily.org/index.php?title=Tests
-- blas     | Build BLAS library (not the same thing as Eigen)
-- uninstall| Remove files installed by the install target
-- ---------+--------------------------------------------------------------
-- 
-- Configuring incomplete, errors occurred!
See also "/Users/p.thomas/realityBLU/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeOutput.log".
See also "/Users/p.thomas/realityBLU/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeError.log".
emcmake: error: 'cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/Users/p.thomas/realityBLU/emsdk/node/16.20.0_64bit/bin/node .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DCMAKE_TOOLCHAIN_FILE=/Users/p.thomas/RealityBLU/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake "-DCMAKE_CXX_FLAGS=-O3 -std=c++17" "-DCMAKE_C_FLAGS=-O3 -std=c++17" -DCMAKE_INSTALL_PREFIX=/Users/p.thomas/realityBLU/AlvaAR/src/libs/build/eigen/ -DBUILD_SHARED_LIBS=OFF' failed (returned 1)
make: make -j install
make: *** No rule to make target `install'.  Stop.
emmake: error: 'make -j install' failed (returned 2)
Step 1/1 -------------------------------- Complete `

CMakeError.log

`Performing C++ SOURCE FILE Test COMPILER_SUPPORT_Wlogicalop failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-nTW1Vd

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_e33f8/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_e33f8.dir/build.make CMakeFiles/cmTC_e33f8.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-nTW1Vd'
Building CXX object CMakeFiles/cmTC_e33f8.dir/src.cxx.o
/Users/p.thomas/emsdk/upstream/emscripten/em++ -DCOMPILER_SUPPORT_Wlogicalop  -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Werror   -Wlogical-op -MD -MT CMakeFiles/cmTC_e33f8.dir/src.cxx.o -MF CMakeFiles/cmTC_e33f8.dir/src.cxx.o.d -o CMakeFiles/cmTC_e33f8.dir/src.cxx.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-nTW1Vd/src.cxx
error: unknown warning option '-Wlogical-op'; did you mean '-Wlong-long'? [-Werror,-Wunknown-warning-option]
em++: error: '/Users/p.thomas/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -DCOMPILER_SUPPORT_Wlogicalop -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Werror -Wlogical-op -MD -MT CMakeFiles/cmTC_e33f8.dir/src.cxx.o -MF CMakeFiles/cmTC_e33f8.dir/src.cxx.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-nTW1Vd/src.cxx -o CMakeFiles/cmTC_e33f8.dir/src.cxx.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_e33f8.dir/build.make:79: CMakeFiles/cmTC_e33f8.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-nTW1Vd'
gmake: *** [Makefile:127: cmTC_e33f8/fast] Error 2


Source file was:
int main() { return 0; }

Performing C++ SOURCE FILE Test COMPILER_SUPPORT_wd981 failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cmoAnQ

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_d3d45/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_d3d45.dir/build.make CMakeFiles/cmTC_d3d45.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cmoAnQ'
Building CXX object CMakeFiles/cmTC_d3d45.dir/src.cxx.o
/Users/p.thomas/emsdk/upstream/emscripten/em++ -DCOMPILER_SUPPORT_wd981  -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror   -wd981 -MD -MT CMakeFiles/cmTC_d3d45.dir/src.cxx.o -MF CMakeFiles/cmTC_d3d45.dir/src.cxx.o.d -o CMakeFiles/cmTC_d3d45.dir/src.cxx.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cmoAnQ/src.cxx
clang-14: error: unknown argument: '-wd981'
em++: error: '/Users/p.thomas/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -DCOMPILER_SUPPORT_wd981 -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror -wd981 -MD -MT CMakeFiles/cmTC_d3d45.dir/src.cxx.o -MF CMakeFiles/cmTC_d3d45.dir/src.cxx.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cmoAnQ/src.cxx -o CMakeFiles/cmTC_d3d45.dir/src.cxx.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_d3d45.dir/build.make:79: CMakeFiles/cmTC_d3d45.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cmoAnQ'
gmake: *** [Makefile:127: cmTC_d3d45/fast] Error 2


Source file was:
int main() { return 0; }

Performing C++ SOURCE FILE Test COMPILER_SUPPORT_wd2304 failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-jnJ2tR

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_39dc3/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_39dc3.dir/build.make CMakeFiles/cmTC_39dc3.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-jnJ2tR'
Building CXX object CMakeFiles/cmTC_39dc3.dir/src.cxx.o
/Users/p.thomas/emsdk/upstream/emscripten/em++ -DCOMPILER_SUPPORT_wd2304  -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror   -wd2304 -MD -MT CMakeFiles/cmTC_39dc3.dir/src.cxx.o -MF CMakeFiles/cmTC_39dc3.dir/src.cxx.o.d -o CMakeFiles/cmTC_39dc3.dir/src.cxx.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-jnJ2tR/src.cxx
clang-14: error: unknown argument: '-wd2304'
em++: error: '/Users/p.thomas/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -DCOMPILER_SUPPORT_wd2304 -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror -wd2304 -MD -MT CMakeFiles/cmTC_39dc3.dir/src.cxx.o -MF CMakeFiles/cmTC_39dc3.dir/src.cxx.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-jnJ2tR/src.cxx -o CMakeFiles/cmTC_39dc3.dir/src.cxx.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_39dc3.dir/build.make:79: CMakeFiles/cmTC_39dc3.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-jnJ2tR'
gmake: *** [Makefile:127: cmTC_39dc3/fast] Error 2


Source file was:
int main() { return 0; }

Performing C++ SOURCE FILE Test COMPILER_SUPPORT_STRICTANSI failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cPX9uC

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_d6319/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_d6319.dir/build.make CMakeFiles/cmTC_d6319.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cPX9uC'
Building CXX object CMakeFiles/cmTC_d6319.dir/src.cxx.o
/Users/p.thomas/emsdk/upstream/emscripten/em++ -DCOMPILER_SUPPORT_STRICTANSI  -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror   -strict-ansi -MD -MT CMakeFiles/cmTC_d6319.dir/src.cxx.o -MF CMakeFiles/cmTC_d6319.dir/src.cxx.o.d -o CMakeFiles/cmTC_d6319.dir/src.cxx.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cPX9uC/src.cxx
clang-14: error: unknown argument: '-strict-ansi'
em++: error: '/Users/p.thomas/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -DCOMPILER_SUPPORT_STRICTANSI -O3 -std=c++17 -std=c++03 -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wshorten-64-to-32 -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -Werror -strict-ansi -MD -MT CMakeFiles/cmTC_d6319.dir/src.cxx.o -MF CMakeFiles/cmTC_d6319.dir/src.cxx.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cPX9uC/src.cxx -o CMakeFiles/cmTC_d6319.dir/src.cxx.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_d6319.dir/build.make:79: CMakeFiles/cmTC_d6319.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-cPX9uC'
gmake: *** [Makefile:127: cmTC_d6319/fast] Error 2


Source file was:
int main() { return 0; }

Looking for a Fortran compiler failed with the following output:
-- The Fortran compiler identification is unknown
CMake Error at CMakeLists.txt:2 (project):
  No CMAKE_Fortran_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "FC" or the CMake cache entry CMAKE_Fortran_COMPILER to the full
  path to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "/Users/p.thomas/AlvaAR/src/libs/eigen/build/test/CMakeFiles/CheckFortran/CMakeFiles/CMakeOutput.log".
See also "/Users/p.thomas/AlvaAR/src/libs/eigen/build/test/CMakeFiles/CheckFortran/CMakeFiles/CMakeError.log".

Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-pLP15s

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_c9701/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_c9701.dir/build.make CMakeFiles/cmTC_c9701.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-pLP15s'
Building C object CMakeFiles/cmTC_c9701.dir/src.c.o
/Users/p.thomas/emsdk/upstream/emscripten/emcc -DCMAKE_HAVE_LIBC_PTHREAD  -O3 -std=c++17  -MD -MT CMakeFiles/cmTC_c9701.dir/src.c.o -MF CMakeFiles/cmTC_c9701.dir/src.c.o.d -o CMakeFiles/cmTC_c9701.dir/src.c.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-pLP15s/src.c
error: invalid argument '-std=c++17' not allowed with 'C'
emcc: error: '/Users/p.thomas/emsdk/upstream/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -DCMAKE_HAVE_LIBC_PTHREAD -O3 -std=c++17 -MD -MT CMakeFiles/cmTC_c9701.dir/src.c.o -MF CMakeFiles/cmTC_c9701.dir/src.c.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-pLP15s/src.c -o CMakeFiles/cmTC_c9701.dir/src.c.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_c9701.dir/build.make:79: CMakeFiles/cmTC_c9701.dir/src.c.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-pLP15s'
gmake: *** [Makefile:127: cmTC_c9701/fast] Error 2


Source file was:
#include <pthread.h>

static void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_cancel(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}


Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-PHJSeG

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_40257/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_40257.dir/build.make CMakeFiles/cmTC_40257.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-PHJSeG'
Building C object CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o
/Users/p.thomas/emsdk/upstream/emscripten/emcc   -O3 -std=c++17 -DCHECK_FUNCTION_EXISTS=pthread_create -MD -MT CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o -MF CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o.d -o CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-PHJSeG/CheckFunctionExists.c
error: invalid argument '-std=c++17' not allowed with 'C'
emcc: error: '/Users/p.thomas/emsdk/upstream/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -O3 -std=c++17 -DCHECK_FUNCTION_EXISTS=pthread_create -MD -MT CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o -MF CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-PHJSeG/CheckFunctionExists.c -o CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_40257.dir/build.make:79: CMakeFiles/cmTC_40257.dir/CheckFunctionExists.c.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-PHJSeG'
gmake: *** [Makefile:127: cmTC_40257/fast] Error 2



Determining if the function pthread_create exists in the pthread failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-w2w9lS

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_157d2/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_157d2.dir/build.make CMakeFiles/cmTC_157d2.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-w2w9lS'
Building C object CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o
/Users/p.thomas/emsdk/upstream/emscripten/emcc   -O3 -std=c++17 -DCHECK_FUNCTION_EXISTS=pthread_create -MD -MT CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o -MF CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o.d -o CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-w2w9lS/CheckFunctionExists.c
error: invalid argument '-std=c++17' not allowed with 'C'
emcc: error: '/Users/p.thomas/emsdk/upstream/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -O3 -std=c++17 -DCHECK_FUNCTION_EXISTS=pthread_create -MD -MT CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o -MF CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-w2w9lS/CheckFunctionExists.c -o CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_157d2.dir/build.make:79: CMakeFiles/cmTC_157d2.dir/CheckFunctionExists.c.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-w2w9lS'
gmake: *** [Makefile:127: cmTC_157d2/fast] Error 2



Determining if compiler accepts -pthread failed with the following output:
Change Dir: /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-xaMLi1

Run Build Command(s):/usr/local/bin/gmake -f Makefile cmTC_ea3f3/fast && /usr/local/bin/gmake  -f CMakeFiles/cmTC_ea3f3.dir/build.make CMakeFiles/cmTC_ea3f3.dir/build
gmake[1]: Entering directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-xaMLi1'
Building C object CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o
/Users/p.thomas/emsdk/upstream/emscripten/emcc   -O3 -std=c++17  -MD -MT CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o -MF CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o.d -o CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-xaMLi1/CheckForPthreads.c
error: invalid argument '-std=c++17' not allowed with 'C'
emcc: error: '/Users/p.thomas/emsdk/upstream/bin/clang -target wasm32-unknown-emscripten -DEMSCRIPTEN -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -D__EMSCRIPTEN_major__=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=34 -D_LIBCPP_ABI_VERSION=2 -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=/Users/p.thomas/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/compat -O3 -std=c++17 -MD -MT CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o -MF CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o.d -c /Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-xaMLi1/CheckForPthreads.c -o CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o' failed (returned 1)
gmake[1]: *** [CMakeFiles/cmTC_ea3f3.dir/build.make:79: CMakeFiles/cmTC_ea3f3.dir/CheckForPthreads.c.o] Error 1
gmake[1]: Leaving directory '/Users/p.thomas/AlvaAR/src/libs/eigen/build/CMakeFiles/CMakeScratch/TryCompile-xaMLi1'
gmake: *** [Makefile:127: cmTC_ea3f3/fast] Error 2

`

Problem with building dependencies and project

Hi, I have problem with building dependencies and project.

After activating Emscripten, I go to src/libs/ and execute ./build.sh, the following error occurs.

CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
emcmake: error: 'cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -DCMAKE_TOOLCHAIN_FILE=/Users/Kageori/Development/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake "-DCMAKE_CXX_FLAGS=-O3 -std=c++17" "-DCMAKE_C_FLAGS=-O3 -std=c++17" -DCMAKE_INSTALL_PREFIX=/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/libs/build//eigen/ -DBUILD_SHARED_LIBS=OFF -DCMAKE_CROSSCOMPILING_EMULATOR=/Users/Kageori/Documents/git/source/emsdk/node/14.18.2_64bit/bin/node;--experimental-wasm-bulk-memory;--experimental-wasm-threads' failed (returned 1)
make: make -j install
make: *** No rule to make target `install'.  Stop.
emmake: error: 'make -j install' failed (returned 2)

And when I build project, I executed emmake make install and the following error occurs.

In file included from /Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/src/camera_calibration.cpp:1:
/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/src/camera_calibration.hpp:6:10: fatal error: 'Eigen/Core' file not found
#include <Eigen/Core>
         ^~~~~~~~~~~~
1 error generated.
em++: error: '/Users/Kageori/Documents/git/source/emsdk/upstream/bin/clang++ -target wasm32-unknown-emscripten -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -DEMSCRIPTEN --sysroot=/Users/Kageori/Documents/git/source/emsdk/upstream/emscripten/cache/sysroot -Xclang -iwithsysroot/include/fakesdl -Xclang -iwithsysroot/include/compat -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/calib3d/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/core/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/features2d/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/flann/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/highgui/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/imgcodecs/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/imgproc/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/objdetect/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/../opencv/modules/video/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/opencv -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/opengv/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/eigen/include/eigen3 -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/Sophus/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/../libs/build/ceres-solver/include -I/Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/src -O3 -DNDEBUG -std=gnu++17 -w -c /Users/Kageori/Documents/git/projects/2023/AlvaAR-main/src/slam/src/camera_calibration.cpp -o CMakeFiles/alva_ar.dir/src/camera_calibration.cpp.o' failed (returned 1)
make[2]: *** [CMakeFiles/alva_ar.dir/src/camera_calibration.cpp.o] Error 1
make[1]: *** [CMakeFiles/alva_ar.dir/all] Error 2
make: *** [all] Error 2
emmake: error: 'make install' failed (returned 2)

I am a beginner in Emscripten and I would like to know how to solve this problem.

Can you put a three.js example.

Hi, thanks for this great lib,

i am trying to run the THREE..Js but i can unresolved promish..

this.alva = await AlvaAR.Initialize(this.THREE);
this.applyPose = AlvaARConnectorTHREE.Initialize(this.THREE);

this.addToAnimLoop(() => {
  this.imageData = ctx.getImageData(0, 0, this.width, this.height);
  this.pose = alva.findCameraPose(this.imageData);

  if (this.pose)
    this.applyPose(this.pose, this.camera.quaternion, this.camera.position);
});

could you write a simple three.js with a cube in order to understant the setup ?

thank you

Hello, may I ask a question?

Hello, do you want to prepare scene images of the Prophet for this library in order to determine the location of the camera?

simd and threads are both supported by Mobile Safari, enable streaming instantiation

This middleware will add the appropriate CORS headers to enable WASM multithreading:

import { NextFunction, Request, Response } from "express";

export function corsHeaders(req: Request, res: Response, next: NextFunction) {
  res.header("Cross-Origin-Opener-Policy", "same-origin");
  res.header("Cross-Origin-Embedder-Policy", "require-corp");
  next();
}

Naturally, this must be on https.

Additionally, you may consider building EIGEN with ARM NEON SIMD.

iOS 16.5.1 is the minimum version for working SIMD, although 16.4 will report it is supported. See microsoft/onnxruntime#15644 https://webkit.org/blog/14154/webkit-features-in-safari-16-5/#:~:text=Fixed%20WASM%20SIMD%20breaking%20WebP%20decoding%20applications

wasm-feature-detect can detect threads and SIMD before loading the appropriate build.

the axes, units and orientations are incoherent

( rotationQuaternion !== null ) && rotationQuaternion.set( -r.x, r.y, r.z, r.w );

The coefficients that work for me are 1 * x, -1 * y, 1 * z; for the quaternion, it's 1 * x, -1 * y, 1 * z, 1 * w.

I see that the camera in THREE.js faces 0,0,-1 instead of 0,0,1. This is painful, because nothing else does that.

I've observed that the position is quite wonky. It reports displacements that are like 10x larger than they are in real life. Any insights?

What is the actual, bonafide coordinate space the actual ORBSLAM-2 as you've adapted runs in?

Do you have any suggestions for changes to get the actual, normal pose, one that isn't munged for THREE.js or anything else?

Created a react-three-fibre R3F example

Hi @alanross ,

I've created a R3F example that works (after a fashion). I've got everything on a branch and if you are interested would create a PR. Just let me know if you would like to have the branch pushed to your repo or if I should fork and open a PR from the fork.
Cheers

eigen and ceres emcmake error

I also encountered the same problem, as eigen and ceres cannot compile
On ubuntu20.0 ,Emsdk=3.0.0 .emcmake error.
2023-07-31 17-06-55 的屏幕截图

Image (marker) tracking?

Hello,

Could AlvaAR be used (or adapted to be used) for recognition and tracking of images (i.e. image markers)?

WebXR fall-back?

Hi, I love the possibilités of that project, especially as a fall-back for WebXR!
Would you mind make an aframe component out of it?

build error

@alanross
When I compile AlvaAR with In the examples, I encountered the following error (my libs and slam were compiled successfully), can you give me help, or give me the dockerfile of this project?
image

Is this project abandoned?

Hello!

I hope you be fine!

This project is REALLY amazing, but seems it doesn't have any progress since a lot of months ago.

I would like to know if this project is still on development or, well, already abandoned. I really hope not!!!

Thank you so much!!

Best regards!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.