AR Preview of NFT Art in a Mobile App: Implementation

Customers want to see a collection item in their room, not on a flat screen, but the model gets heavier and opens slowly. We develop AR previews for NFTs on a turnkey basis: we prepare models, set up viewing and camera overlay, and hand over configurations and documentation. Preview opening becomes several times faster, and the drop-off rate during viewing decreases.

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a mobile application for FEEDME
    Development of a mobile application for FEEDME
    971
  • Development of a mobile application for XOOMER
    Development of a mobile application for XOOMER
    869
  • Development of a mobile application for RHL
    Development of a mobile application for RHL
    1289
  • Development of a mobile application for ZIPPY
    Development of a mobile application for ZIPPY
    1143
  • Development of a mobile application for Affhome
    Development of a mobile application for Affhome
    1076
  • Development of a mobile application for the FLAVORS company
    Development of a mobile application for the FLAVORS company
    677

Why AR NFT preview breaks in a mobile app

AR NFT preview is the most impressive screen in the app: the user has already opened the card, pointed the camera — and sees a gray square instead of the artwork.

The first failure is almost always on the storefront side: the token exists, but metadata references a file that is served either with a delay or with an error, and the app cannot fall back to a static preview.

Loading the 3D model adds a second problem. Source assets are assembled for desktop viewing: heavy textures, tens of thousands of polygons, not a single level of detail. On a mobile connection such a scene takes 6–10 seconds, and the user leaves before seeing the artwork.

Augmented reality in the app breaks on surface anchoring. Devices recognize the plane differently, hold scale and shadows differently, so the same model on different phones ends up either in the air or inside a table.

Users read surface anchoring errors as a product defect, although it is a difference in camera calibration and sensor sets.

Mobile app performance suffers last in the chain: the viewing mode pulls the entire scene, decoding, and the rest of the screen logic — the app heats up, drops frames, and gets closed by the system. Let's break down how this is addressed.

What augmented reality preview gives: effect in numbers

An augmented reality preview changes the mechanics of the card: instead of a static image, the user gets an object they can walk around and examine in their room.

We keep time to first frame within fractions of a second — the model is shown progressively while details continue loading.

Card conversion grows for a clear reason: the decision is made on the spot, without the question "how will this look at my place". The share of transitions to viewing and then to purchase or subscription increases because the key doubt is removed in a couple of seconds.

User engagement is also measurable. A viewing session is longer than with a static card: the object is rotated, zoomed in, photographed, and revisited later — repeat opens happen without additional traffic.

Resilience to weak devices is built into the architecture: we prepare several levels of detail for the model and switch them based on the capabilities of the specific phone.

The share of successful viewing sessions on budget models differs from flagships within the margin of error, not by multiples.

At the same time, a whole class of model loading failures goes away: an interrupted data stream, a stale file link, an incompatible format no longer turn into a black screen.

The app checks the model in advance and either shows a preview or offers a static version — with no dead end for the user.

Viewing formats: comparison of modes and their limitations

The viewing format determines where the frame is rendered — on the guest's device or on our side — and what exactly the person sees on the screen.

This affects the accuracy of placing the object on a surface, the behavior of shadows, and the range of devices on which the scene will launch without surprises.

The four modes below differ not in image quality, but in what we can guarantee: scene depth, response to movement, and device support coverage.

Option When it fits Limitations
Native module Main scenario in the app: stable tracking, sensor support, full-screen scene Requires installation and updates through the app store, build size grows
Web viewing via link One-off demos, landing pages, launching from someone else's device in a couple of seconds The browser decides everything: some sensors are unavailable, object placement is less stable
Cloud rendering (frame streaming) Heavy scenes with reflections and complex lighting, weak device in hand Sensitive to network channel, response to rotation appears with delay
Viewing without camera Devices without augmented reality support, desktop, sharing in a messenger No anchoring to the real room, the scene is presented as a volumetric model

The modes do not exclude each other: the native module covers the main path, web viewing insures older models and link-based entry.

Before launch, we measure scene startup time and the share of devices where the mode worked without failures, and only then finalize the support matrix.

Implementation order: from model review to handover

We structure implementation stages so that each step relies on a verified previous one, not on assumptions. First we review what already exists on the client side, and only then design the scene and write code — otherwise rework costs more than an audit.

  1. Audit of models and metadata. We look at polycount, textures, scale units, and model-to-token correspondence. Part of the collection goes to optimization, part is filtered out immediately.
  2. Scene scheme. We fix the scale, the object's appearance point, lighting, background, and behavior during rotation — this is the contract between design and development.
  3. Assembly of the preview module. Viewing, loading by token identifier, model cache, and "loading / failed" states — separately from the app logic itself.
  4. Device testing. We run it on weak and strong devices, different diagonals, and OS versions: frame stability, memory consumption, behavior during heating and network switching.
  5. Failures and edge cases. Unavailable gateway, corrupted model, camera access denial — each case has its own screen and a clear action for the user.
  6. Documentation. Requirements for models, scene scheme, and instructions for connecting a new collection by the client's team.
  7. Solution handover. Walkthrough with the client's engineers, access, training, and an agreed support period after release.

What remains with you after delivery: configurations and documentation

After delivery, what remains is not only the assembled app but also everything needed for the AR NFT preview to live without us. We hand over scenes, models, data exchange schemes with the blockchain layer, and the rules by which the team adds new items. Without this, the first new token means deciphering someone else's code by guesswork.

  • Models and materials. Items for mobile rendering: reasonable mesh density, baked textures, clean materials — the preview opens on an average device without drops.
  • Scene configuration. Lighting, environment, scale, and plane anchoring points are set by files: a new item enters the frame predictably, without tuning for every phone model.
  • Integration documentation. Scheme of exchange with the blockchain layer: how we get token metadata, where and how long we cache media, what we show when the node is unavailable.
  • Storage access. Keys to the model repository and content delivery are set up on your accounts, publication rights are separated from editing rights.
  • Instructions for the team. Procedure for adding a new item and an acceptance checklist: what to check on the device before release, which parameters are considered defects.
  • Update policy. Versioning of models and scenes, compatibility window with old app versions, and rollback procedure if an update worsens the frame.

The artifacts live in your repository and are designed for an engineer who will open them in six months without the author nearby.

Case: how model opening was sped up on weak smartphones

AR preview is the same scenario as marketplaces like OpenSea: a buyer in a lot card points the camera and sees the object in the interior without leaving the app.

On entry-level devices, the scenario fell apart: the model either did not open or appeared so late that the user managed to close the card. In this mobile app case, we rebuilt asset preparation and loading and measured the result on the same session sample.

Metric Before After
Time to first frame 6–8 s 1.5–2 s
Successful views on entry-level devices 62% 96%
Weight of loaded materials 1× 3.5 times less
Sessions interrupted at model opening 24% 4%

What exactly was changed in loading

We stopped waiting for the full model: first comes a lightweight copy of geometry and lower-quality textures, while the full set is pulled in the background during viewing.

The on-device cache holds the last opened objects, so re-entering the card is almost instant, and unpacking does not block the interface.

The load on the device was limited by a budget: the number of light sources, scene update rate, and shadow resolution are set by a policy per device class, not by uniform settings for everyone.

This removed the class of failures where the app closed due to memory: such crashes came in batches specifically from budget models — now they are isolated and tied to specific devices, not to the viewing scenario as a whole.

How is model viewing different from camera overlay?

These are two different modes with different requirements for model data. In 3D viewing, the camera orbits the object against a neutral background: the scene is fully controllable, surface anchoring is not needed, and scale is adjusted to the screen.

In camera overlay mode, the model enters the real scene, and all parameters — from units of measurement to light — stop being arbitrary.

Model scale in AR is set in real units, not "to taste". If the artwork is exported without correct units, the object either hangs in the air or goes under the surface.

We calibrate geometry against a reference — when transferred between devices, the size remains the same, not "roughly similar".

Anchoring accuracy is a separate layer of work. The plane is determined by texture and light, so on a plain wall or glossy table the model drifts and slips. Anchors on stable features and trajectory smoothing help: jitter goes away, but inertia in response to movement appears.

Lighting in the scene determines whether the user believes the picture. In 3D viewing, one studio setup is enough; in AR, you need to estimate real illumination and adjust sources and shadows, otherwise the model reads as a sticker on video.

For a storefront in marketplaces like OpenSea, 3D viewing is usually enough: it is predictable and does not depend on the camera. Camera overlay is a separate scenario: trying the artwork on your wall.

We keep both on one model file with different light and scale profiles so as not to duplicate assets.

Common technical concerns about app integration

Before starting, clients check the same points: how much the model weighs, what owners of old phones will see, how the collection updates after a drop, and how much revision awaits an already released app.

We record the answers in the project document before work begins — so they do not surface during acceptance.

How much does the model weigh and what about loading?

We assemble the scene for a mobile budget: limit polycount, compress textures, deliver geometry in glTF. The art object model stays within a few megabytes, opens in 1-2 seconds, and is then taken from cache.

What will owners of old devices see?

We determine the lower support boundary by the phone fleet, not by the latest models. On weak hardware we enable a lightweight scene and static preview instead of live rendering, and check on real devices — an emulator does not show drops.

How are collections updated after a new drop?

The storefront receives the catalog and models from the server, so a new release appears without publishing in app stores. Assets are versioned: the old build works with its own set, the new one pulls the fresh one.

How does the preview behave inside the storefront?

The model loads in the background and does not block scrolling — the user browses the catalog while the scene is being prepared. Where AR mode is unavailable, we show a static render and a transition to the ownership page so the storefront does not look empty.

How much revision is needed in the app itself?

Integration comes down to the storefront screen and transition points — rewriting the main code is not required. On the current branch, revisions affect several screens; on an old codebase, we update it first, otherwise the risk of device errors grows.

Let's discuss the task: estimate scope and propose a plan

Describe the task as it is: usage scenario, on which platforms and device models the AR preview should work, where images and token metadata are pulled from, whether offline viewing is needed, and what is already implemented in the app.

In response, we send not a general presentation but a breakdown for your case: where ready-made modules are enough, and where custom display and model preparation logic is needed.

  • Task estimate — what work is included in the scope, what your team has already covered, and what we take on.
  • Option breakdown — built-in augmented reality module versus display through a browser layer: how they differ in image quality, launch speed, and maintenance effort.
  • Work plan by stages and timelines — from a prototype with one model to release, with checkpoints and demonstration of interim results.
  • Team composition — who exactly leads the project: a mobile development engineer, a 3D graphics specialist, a tester on real devices.
  • Handover procedure — what goes to you: source code, build settings, model loading scheme, and the format for adding new tokens.
  • Risks and assumptions — where delays are possible: app store review, model preparation on the client side.

Start with a short description — that is enough to come back with an estimate and propose a plan. If the task is not yet formed, we will break it into stages together.