{"id":15,"date":"2021-02-27T03:38:20","date_gmt":"2021-02-27T03:38:20","guid":{"rendered":"http:\/\/cgmodelviewer.com\/?page_id=15"},"modified":"2026-03-24T00:00:48","modified_gmt":"2026-03-24T00:00:48","slug":"home","status":"publish","type":"page","link":"http:\/\/cgmodelviewer.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">iOS app available<\/h2>\n\n\n\n<p>There&#8217;s now an iOS version of cgmv app.  Created via KMP (Kotlin Multiplatform), the iOS app lacks AR and VR features but provides core trackball viewing for animated\/textured 3D models.<\/p>\n\n\n\n<a href=\"https:\/\/apps.apple.com\/us\/app\/cgmvios\/id6758684319?itscg=30200&#038;itsct=apps_box_badge&#038;mttnsubad=6758684319\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display: inline-block;\">\n<img decoding=\"async\" src=\"https:\/\/toolbox.marketingtools.apple.com\/api\/v2\/badges\/download-on-the-app-store\/black\/en-us?releaseDate=1774051200\" alt=\"Download on the App Store\" style=\"width: 246px; height: 82px; vertical-align: middle; object-fit: contain;\" \/>\n<\/a>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.tellypresence.cgmv&amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1\"><img decoding=\"async\" src=\"https:\/\/play.google.com\/intl\/en_us\/badges\/static\/images\/badges\/en_badge_web_generic.png\" alt=\"\" style=\"width:370px;height:143px\"\/><\/a><figcaption class=\"wp-element-caption\">Get the app here<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Report issues<\/h2>\n\n\n\n<p>There&#8217;s now a dedicated github repo for reporting issues.  As usual, please be as detailed as possible, keeping in mind that only you know all the details about your exact environment and situation.  It&#8217;s crucial to be able to reproduce bugs in order to fix them, so please leave clear, step-by-step instructions on how to get to a state where someone else can see what you&#8217;re observing.  And of course, if you&#8217;re having problems with a particular 3D model, attach it and any supporting files (materials, textures etc) to the ticket&#8230;<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tellypresence\/cgmv-public\" target=\"_blank\"><\/a><\/p>\n\n\n\n<p>Click the icon to report a problem:<\/p>\n\n\n\n<p class=\"has-text-align-center\">: <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/tellypresence\/cgmv-public\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" width=\"48\" height=\"48\" class=\"wp-image-112\" style=\"width: 48px;\" src=\"http:\/\/cgmodelviewer.com\/wp-content\/uploads\/2023\/02\/github-mark-1.png\" alt=\"\" srcset=\"http:\/\/cgmodelviewer.com\/wp-content\/uploads\/2023\/02\/github-mark-1.png 240w, http:\/\/cgmodelviewer.com\/wp-content\/uploads\/2023\/02\/github-mark-1-150x150.png 150w, http:\/\/cgmodelviewer.com\/wp-content\/uploads\/2023\/02\/github-mark-1-100x100.png 100w\" sizes=\"auto, (max-width: 48px) 100vw, 48px\" \/><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changes for Android 11+<\/h2>\n\n\n\n<p>Android 11 placed severe restrictions on unfettered file access by apps like this.  Apps with large user bases like MX Player and VLC, which need to access arbitrary media file types, requested and were granted the new &#8220;Manage all files&#8221; permission.  But unfortunately this app doesn&#8217;t have that kind of clout.  Because there are dozens of file extensions for supported 3D models and textures, and one file may depend on another with a different extension, there was a big problem going forward, especially since so much of the core code uses C++.<\/p>\n\n\n\n<p>The solution, while inefficient and rather annoying, is to present the user with a one-time system dialog to allow access to a folder containing 3D models, and to then copy those models to app-internal storage.  This technique means that the app will require more storage than it should, since there are now 2 copies of the 3D models &#8212; the original, plus the one duplicated by the app.  But thereafter the original code can function as normal, with arbitrary file access being freely available.<\/p>\n\n\n\n<p>Of course, if running on Android 10 or older, there won&#8217;t be any need to duplicate files since the newer file system restrictions don&#8217;t apply; in this case the app will search under the &#8220;Download&#8221; folder so be sure to put your 3D models somewhere under that hierarchy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A few tips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3D models bundled in archive files (.7z, .rar, .zip etc) need to be extracted manually; this app doesn&#8217;t understand archive files!<\/li>\n\n\n\n<li>Keep in mind that the app runs on mobile devices which are traditionally resource constrained compared to desktop workstations!  Large 3D models (over a few MB) may\n<ul class=\"wp-block-list\">\n<li>cause the app to crash<\/li>\n\n\n\n<li>load very slowly<\/li>\n\n\n\n<li>perform poorly<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>If textures look strange try reloading with &#8220;Flip UVs&#8221; checkbox ticked.<\/li>\n\n\n\n<li>If models pieces are clumped together try reloading with &#8220;Pre transform vertices&#8221; checkbox ticked.<\/li>\n<\/ul>\n\n\n\n<p>And some caveats&#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Many 3D models, especially if not explicitly labelled as &#8220;low-poly,&#8221; are intended for high-end workstations.  They can be huge and demand more resources than a mobile device can provide!  The app may crash frequently when attempting to load models beyond the capabilities of the device.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>iOS app available There&#8217;s now an iOS version of cgmv app. Created via KMP (Kotlin Multiplatform), the iOS app lacks AR and VR features but provides core trackball viewing for animated\/textured 3D models. Report issues There&#8217;s now a dedicated github repo for reporting issues. As usual, please be as detailed as possible, keeping in mind &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/cgmodelviewer.com\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Home&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-15","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/pages\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15"}],"version-history":[{"count":18,"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions"}],"predecessor-version":[{"id":188,"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=\/wp\/v2\/pages\/15\/revisions\/188"}],"wp:attachment":[{"href":"http:\/\/cgmodelviewer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}