{"id":31250732,"url":"https://github.com/adynathos/augmentedunreality","last_synced_at":"2025-09-23T05:50:58.079Z","repository":{"id":41225821,"uuid":"58941836","full_name":"adynathos/AugmentedUnreality","owner":"adynathos","description":"Augmented reality for Unreal Engine 4","archived":false,"fork":false,"pushed_at":"2020-09-16T23:03:50.000Z","size":11031,"stargazers_count":294,"open_issues_count":18,"forks_count":112,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-06-08T00:49:36.351Z","etag":null,"topics":["android","augmented-reality","camera-calibration","fiducial-markers","unreal-engine"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adynathos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_AugmentedUnreality.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-16T15:04:46.000Z","updated_at":"2025-05-28T15:37:51.000Z","dependencies_parsed_at":"2022-08-28T06:23:35.322Z","dependency_job_id":null,"html_url":"https://github.com/adynathos/AugmentedUnreality","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/adynathos/AugmentedUnreality","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adynathos%2FAugmentedUnreality","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adynathos%2FAugmentedUnreality/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adynathos%2FAugmentedUnreality/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adynathos%2FAugmentedUnreality/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adynathos","download_url":"https://codeload.github.com/adynathos/AugmentedUnreality/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adynathos%2FAugmentedUnreality/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276524027,"owners_count":25657548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","augmented-reality","camera-calibration","fiducial-markers","unreal-engine"],"created_at":"2025-09-23T05:50:55.699Z","updated_at":"2025-09-23T05:50:58.062Z","avatar_url":"https://github.com/adynathos.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eAugmented Unreality\u003c/h1\u003e\n\u003cp\u003e\nAugmented Unreality is a plugin for \u003ca href=\"https://www.unrealengine.com\"\u003eUnreal Engine 4\u003c/a\u003e\nwhich enables creation of augmented reality applications by displaying a video stream from a camera \ninside the game and tracking camera position using fiducial markers.\n\u003c/p\u003e\n\u003cp\u003e\nIt was created by \u003cb\u003eKrzysztof Lis (Adynathos)\u003c/b\u003e as part of a project for \u003cb\u003eETH Zürich\u003c/b\u003e.\n\u003c/p\u003e\n\n\u003ch2\u003eNews\u003c/h2\u003e\n\nVersion \u003cb\u003e1.2.05\u003c/b\u003e - build for UE 4.19, OpenCV 3.4.1:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/releases/download/1.2.05/AugmentedUnreality_1_2_05.7z\"\u003ePlugin\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/releases/download/1.2.05/AugmentedUnrealityEx_1_2_05.7z\"\u003eExample project\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cp\u003e\n\u003cul\u003e\n\t\u003cli\u003eVideo displayed in-game\u003c/li\u003e\n\t\u003cli\u003eCamera position tracked using fiducial markers, multiple independent sets of markers can be tracked at once\u003c/li\u003e\n\t\u003cli\u003eEditable spatial configurations of markers \u003c/li\u003e\n\t\u003cli\u003eCamera calibration\u003c/li\u003e\t\n\t\u003cli\u003eMultiple video sources: cameras, video files, network streams. Source can be switched using in-game UI\u003c/li\u003e\n\t\u003cli\u003eShadow simulation (assuming the scene is on a plane)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003ch2\u003ePlatforms\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWindows\u003c/li\u003e\n\u003cli\u003eLinux\u003c/li\u003e\n\u003cli\u003eAndroid\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eVideo Presentation\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://www.youtube.com/watch?v=Ys8br7AKW9g\"\u003e\n\t\u003cimg src=\"Documentation/images/video_link.jpg\" width=\"600\"/\u003e\n\u003c/a\u003e\n\u003c/figure\u003e\n\n\u003ch2 name=\"downloads\"\u003eDownloads\u003c/h2\u003e\n\u003cp\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/releases\"\u003eDownload Section\u003c/a\u003e\n\u003cul\u003e\n\t\u003cli\u003e\u003ca name=\"downloads_plugin\" href=\"https://github.com/adynathos/AugmentedUnreality/releases/download/1.2.05/AugmentedUnreality_1_2_05.7z\"\u003eAugmented Unreality Plugin\u003c/a\u003e\n\t\t- the plugin files only, \n\t\u003c/li\u003e\n\t\u003cli\u003e\u003ca name=\"downloads_project\" href=\"https://github.com/adynathos/AugmentedUnreality/releases/download/1.2.05/AugmentedUnrealityEx_1_2_05.7z\"\u003eAugmented Unreality Example Project\u003c/a\u003e\n\t\t- an example project using the plugin\n\t\u003c/li\u003e \n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003ch2 name=\"install\"\u003eInstallation\u003c/h2\u003e\n\n\u003ch3\u003eGetting started - try the example project\u003c/h3\u003e\n\u003cp\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#downloads\"\u003eDownload the example project\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecompress the archive - and move \u003ctt\u003eAugmentedUnrealityEx\u003c/tt\u003e to the location where you store your Unreal projects.\u003c/li\u003e\n\u003cli\u003eLaunch Unreal Engine and open \u003ctt\u003eAugmentedUnrealityEx/AugmentedUnrealityEx.uproject\u003c/tt\u003e.\u003c/li\u003e\n\u003cli\u003ePrint the following boards:\n\u003ca href=\"http://adynathos.net/dev/aur/ChArUco_20_C.png\"\u003eChessboard 1\u003c/a\u003e, \u003ca href=\"http://adynathos.net/dev/aur/ChArUco_26_C.png\"\u003eChessboard 2\u003c/a\u003e, \u003ca href=\"http://adynathos.net/dev/aur/AURBoard_SquareB.png\"\u003eSquare B\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003eConnect a camera and launch the game.\u003c/li\u003e\n\u003cli\u003eIf the virtual object are not well aligned with the markers, perform \u003ca href=\"#section_calibration\"\u003ecamera calibration\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003cfigure\u003e\n\u003cfigcaption\u003e Overview of elements visible in the example project: \u003c/figcaption\u003e\n\t\u003cimg src=\"./Documentation/images/aur_overview.jpg\" width=\"800\" /\u003e\n\u003c/figure\u003e\n\n\u003ch3\u003eAdd plugin to an existing project:\u003c/h3\u003e\n\u003cp\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#downloads\"\u003eDownload the plugin\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDecompress the archive - and move directory \u003ctt\u003eAugmentedUnreality\u003c/tt\u003e to \u003ctt\u003eYourProject/Plugins\u003c/tt\u003e\u003c/li\u003e\n\u003cli\u003eReopen your project\u003c/li\u003e\n\u003cli\u003eAdd to your level: \u003ctt\u003eAURCameraActor\u003c/tt\u003e to show the video and one of the \u003ca href=\"boards\"\u003efiducial patterns\u003c/a\u003e: \u003ctt\u003ePatternChessboard_A\u003c/tt\u003e, \u003ctt\u003ePatternChessboard_B\u003c/tt\u003e,  \u003ctt\u003ePatternCube\u003c/tt\u003e, \u003ctt\u003ePatternSquare_A\u003c/tt\u003e, \u003ctt\u003ePatternSquare_B\u003c/tt\u003e\u003c/li\u003e\n\u003cli\u003eAdd a shadow plane actor if you want shadows cast on the surface under the markers\u003c/li\u003e\n\u003cli\u003eRun the game to generate pattern images. Then print the patterns from \u003ctt\u003eYourProject/Saved/AugmentedUnreality/Patterns\u003c/tt\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003ch2 name=\"video\"\u003eCamera / Video sources\u003c/h2\u003e\n\u003cp\u003e\nThe plugin tries to detect what video sources are available depending on the platform:\n\u003cul\u003e\n\t\u003cli\u003eAndroid - the device camera will be used, available resolutions determined using the camera API\u003c/li\u003e\n\t\u003cli\u003eWindows, Linux - video acquisition is achieved using OpenCV's \u003ca href=\"https://docs.opencv.org/3.4.1/d8/dfe/classcv_1_1VideoCapture.html\"\u003eVideoCapture\u003c/a\u003e.\n\tStandard resolutions are offered, but there is no guarantee that the camera can output in all resolutions.\u003c/li\u003e\n\t\u003cli\u003eVideo files: \u003ctt\u003eAURVideoVideoFile\u003c/tt\u003e. The \u003ctt\u003eVideoFile\u003c/tt\u003e should be the path to the file relative to \u003ctt\u003eFPaths::GameDir()\u003c/tt\u003e.\n\t\tGStreamer needs to be installed to play videos.\n\t\u003c/li\u003e\n\t\u003cli\u003e\u003ctt\u003eAURVideoSourceStream\u003c/tt\u003e - video streamed through network. Set only one of the following:\n\t\t\u003cul\u003e\n\t\t\t\u003cli\u003e\u003ctt\u003eConnectionString\u003c/tt\u003e - a \u003ca href=\"http://www.z25.org/static/_rd_/videostreaming_intro_plab/\"\u003eGStreamer pipeline\u003c/a\u003e ending with appsink.\u003c/li\u003e\n\t\t\t\u003cli\u003e\u003ctt\u003eStreamFile\u003c/tt\u003e - path to a \u003c/tt\u003e.sdp\u003c/tt\u003e file relative to \u003ctt\u003eFPaths::GameDir()\u003c/tt\u003e.\u003c/li\u003e\n\t\t\u003c/ul\u003e\n\t\u003c/li\u003e\n\t\u003cli\u003eTest video - changes color every second\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\u003cp\u003e\nSelect the video source from the menu on the right.\n\u003c/p\u003e\n\u003cp\u003e\nThe \u003ctt\u003eCalibrationFileName\u003c/tt\u003e is the location of the file storing calibration for this video source, relative to \u003ctt\u003eFPaths::GameSavedDir()/AugmentedUnreality/Calibration\u003c/tt\u003e.\nIf two sources use the same camera, they should have the same calibration file.\n\u003c/p\u003e\n\n\u003ch3 name=\"calibration\"\u003eCamera calibration\u003c/h3\u003e\n\u003cp\u003e\nBest quality is obtained if the camera is calibrated. \nIt is important to find the camera's \u003cb\u003efield of view\u003c/b\u003e.\nIf the camera's field of view differs from the rendering engine's field of view,\nthe virtual objects will not be properly aligned to the real world.\nIf you notice that the virtual objects move in real world when you move the camera, it means the camera is not correctly calibrated\n\u003c/p\u003e\n\u003cp\u003e\nEach \u003ctt\u003eVideoSource\u003c/tt\u003e can have different camera parameters, therefore each has its own calibration file\nlocated at located in \u003ctt\u003eFPaths::GameSavedDir()/AugmentedUnreality/VideoSource.CalibrationFilePath\u003c/tt\u003e.\nThe driver will attempt to load this file and display the information whether the camera is calibrated in the UI.\n\u003c/p\u003e\n\n\u003cp\u003e\nTo perform calibration of your camera:\n\u003cul\u003e\n\u003cli\u003ePrint or display on an additional screen the calibration pattern found in \u003ctt\u003eAugmentedUnreality/Content/Calibration/calibration_pattern_asymmetric_circles.png\u003c/tt\u003e\u003c/li\u003e\n\u003cli\u003eOpen the example project and start the game\u003c/li\u003e\n\u003cli\u003eIn the menu in the top-right corner of the screen, choose the right video source and click \u003ctt\u003eCalibrate\u003c/tt\u003e\u003c/li\u003e\n\u003cli\u003ePoint the camera at the calibration pattern from different directions - pattern is detected if a \u003ca href=\"#fig_calibration\"\u003ecolorful overlay is drawn\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWait until the progress bar is full\u003c/li\u003e\n\u003cli\u003eThe camera properties are now saved to the calibraiton file and will be loaded whenever you use this video source again\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003cfigure name=\"fig_calibration\"\u003e\n\t\u003cfigcaption\u003eCamera calibration in progress - the colorful overlay indicates the calibration pattern was detected:\u003cfigcaption\u003e\n\t\u003cimg src=\"./Documentation/images/aur_calibration.jpg\" width=\"800\" /\u003e\n\u003c/figure\u003e\n\n\u003ch2 name=\"tracking\"\u003eTracking\u003c/h2\u003e\n\u003cp\u003e\nThis plugin uses \u003ca href=\"http://www.uco.es/investiga/grupos/ava/node/26\"\u003eArUco\u003c/a\u003e boards for camera pose estimation,\nspecifically the \u003ca href=\"https://docs.opencv.org/3.4.1/d5/dae/tutorial_aruco_detection.html\"\u003eimplementation of ArUco in OpenCV contrib\u003c/a\u003e.\n\u003c/p\u003e\n\u003cp\u003e\nBoards are used for two purposes:\n\u003cul\u003e\n\t\u003cli\u003ePositioning the camera in game world - this aligns the real and virtual world.\n\t\tThe board's position in real world is equivalent to the point (0, 0, 0) in game world.\n\t\tBoards used for camera positioning are set in the \u003ctt\u003ePlayerController\u003c/tt\u003e's \u003ctt\u003eMarkerBoardDefinitions\u003c/tt\u003e\n\t\tproperty (if you are extending the example player controller)\n\t\tor in \u003ctt\u003eAURCameraActor\u003c/tt\u003e's \u003ctt\u003eBoardDefinitions\u003c/tt\u003e if you are spawning the camera actor directly.\n\t\u003c/li\u003e\n\t\u003cli\u003e\n\t\tPositioning independent actors - to bind an actor's pose to an AR board,\n\t\tadd an \u003ctt\u003eAURTrackingComponent\u003c/tt\u003e to the actor and select the \u003ctt\u003eChildActorClass\u003c/tt\u003e to one of the board blueprints\n\t\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\n\u003ch3 name=\"boards\"\u003eBoards\u003c/h3\u003e\n\u003cfigure\u003e\n\t\u003cimg src=\"./Documentation/images/board_arena.jpg\" width=\"600\" /\u003e\n\u003c/figure\u003e\n\n\u003cp\u003e\nAn ArUco board is a set of square markers, together with their positions and orientations in space.\nWhen a board is visible in the video, its pose relative to the camera can be calculated.\nIn Augmented Unreality, we use boards for finding the pose of the camera in game world and for positioning independent actors with their own markers.\n\u003c/p\u003e\n\u003cp\u003e\nAugmented Unreality allows the user to create their own custom spatial configurations of markers in Unreal Editor.\nPlease see the example boards in \u003ctt\u003eAugmentedUnreality/Content/Patterns\u003c/tt\u003e and \u003ctt\u003eAugmentedUnrealityEx/Content/AugmentedUnrealityExample/Patterns\u003c/tt\u003e.\n\u003cp\u003e\n\u003cp\u003e\n\u003cul\u003e\n\t\u003cli\u003e\u003ca href=\"https://docs.opencv.org/3.4.1/d5/dae/tutorial_aruco_detection.html\"\u003eArUco\u003c/a\u003e - markers can be arranged into any spatial configuration.\n\tUse \u003ctt\u003ePatternCube\u003c/tt\u003e, \u003ctt\u003ePatternSquare_A\u003c/tt\u003e, \u003ctt\u003ePatternSquare_B\u003c/tt\u003e or subclass \u003ctt\u003eAURFiducialPatternSpatialBP\u003c/tt\u003e. \n\t\u003c/li\u003e\n\t\u003cli\u003e\u003ca href=\"https://docs.opencv.org/3.4.1/df/d4a/tutorial_charuco_detection.html\"\u003eChArUco\u003c/a\u003e boards - markers are combined with a chessboard grid. More accurate tracking but must be on a plane. Use \u003ctt\u003ePatternChessboard_A\u003c/tt\u003e, \u003ctt\u003ePatternChessboard_B\u003c/tt\u003e or subclass \u003ctt\u003eAURFiducialPatternFlatBoardBP\u003c/tt\u003e.\n\t\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n\u003ch4 name=\"custom_boards\"\u003eCustom boards\u003c/h4\u003e\n\u003cp\u003e\nTo design a new board, create a child blueprint of \u003ctt\u003eAURFiducialPatternSpatialBP\u003c/tt\u003e and edit it by adding \u003ctt\u003eAURMarkerComponents\u003c/tt\u003e inside it.\nEach \u003ctt\u003eAURMarkerComponent\u003c/tt\u003e represents one square on the board.\n\u003cul\u003e\n\t\u003cli\u003e\u003ctt\u003eLocation\u003c/tt\u003e, \u003ctt\u003eRotation\u003c/tt\u003e - pose of square in space. You can use \u003ctt\u003eSceneCompoenent\u003c/tt\u003es to organize the board hierarchically.\u003c/li\u003e\n\t\u003cli\u003e\u003ctt\u003eId\u003c/tt\u003e - identifier of the pattern shown in this square. Each square should have a different Id.\u003c/li\u003e\n\t\u003cli\u003e\u003ctt\u003eBoardSizeCm\u003c/tt\u003e - length of the square's size. This will automatically set the scale.\n\t\tWhen printing the boards, please ensure the squares match this size.\u003c/li\u003e\n\t\u003cli\u003e\u003ctt\u003eMarginCm\u003c/tt\u003e - margin inside the square, does not affect the total size.\u003c/li\u003e\n\u003c/ul\u003e\nIf you want to use the board to position the (0, 0, 0) point, add to to \u003ctt\u003eMarkerBoardDefinitions\u003c/tt\u003e in \u003ctt\u003ePlayerController\u003c/tt\u003e.\nIf you want an actor to follow the position of the board, add an \u003ctt\u003eAURTrackingComponent\u003c/tt\u003e to the actor and select the \u003ctt\u003eChildActorClass\u003c/tt\u003e to the board blueprint.\n\u003c/p\u003e\n\u003cp\u003e\nAfter you create or edit the board blueprint, launch the game to generate the marker images.\nThen open the directory \u003ctt\u003eYourProject/Saved/AugmentedUnreality/Patterns/YourBoardName\u003c/tt\u003e, print the images,\nand arrange them in space to match your designed configuration.\nThe IDs of the markers in the editor need to match the numbers present in the images:\n\u003c/p\u003e\n\n\u003cfigure\u003e\n\t\u003cimg src=\"./Documentation/images/marker.png\" width=\"400\" /\u003e\n\u003c/figure\u003e\n\n\u003cfigure\u003e\n\t\u003cimg src=\"./Documentation/images/board_tower.jpg\" width=\"600\" /\u003e\n\u003c/figure\u003e\n\n\u003ch3 name=\"solutions\"\u003eEducation\u003c/h3\u003e\n\u003cp\u003e\nThe following problems have been solved in this plugin,\nif you want to learn about these topics, please see:\n\u003cul\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AugmentedUnrealityAndroid_UPL.xml\"\u003eAccessing Android's camera video in UE\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AugmentedUnreality.Build.cs\"\u003eIncluding external libraries in UE4\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003eMulti-threading in UE4 \n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AURDriverThreaded.h\"\u003e(1)\u003c/a\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AURDriverThreaded.cpp\"\u003e(2)\u003c/a\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AURDriverOpenCV.h\"\u003e(3)\u003c/a\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AURDriverOpenCV.h\"\u003e(4)\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003ePerforming OpenCV camera calibration\n\u003ca href=\"http://docs.opencv.org/3.1.0/d4/d94/tutorial_camera_calibration.html\"\u003eOpenCV tutorial\u003c/a\u003e, \n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AUROpenCVCalibration.cpp\"\u003eadaptation for the plugin\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e Drawing on dynamic textures\n\t\u003ca href=\"https://wiki.unrealengine.com/Dynamic_Textures\"\u003eUE tutorial\u003c/a\u003e (a bit old)\n\t\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/AURVideoScreenBase.cpp\"\u003emy adaptation\u003c/a\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003ca href=\"https://github.com/adynathos/AugmentedUnreality/blob/master/Source/AugmentedUnreality/tracking/AURArucoTracker.cpp\"\u003eConversion between OpenCV's and Unreal's coordinate systems\u003c/a\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadynathos%2Faugmentedunreality","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadynathos%2Faugmentedunreality","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadynathos%2Faugmentedunreality/lists"}