Creating a Simple 3D Scene for Augmented Reality
Learn how to download free cultural heritage 3D models from Sketchfab, optimize them with RapidCompact, build a scene in Blender, and publish it online.
This is the first of hopefully many tutorials, please bear with me while I figure out the format (and my recording process + tools). 😇 Let me know in the comments what you do and don’t like!
If do you like this, then please consider subscribing to my free monthly newsletter The Spatial Heritage Review, a monthly round up of things happening at the intersection of cultural heritage + digital 3D:
I recently made this 3D scene to promote the launch of The Spatial Heritage Review. While it is a fairly simply scene, it still required several steps and different digital tools to achieve. I figured it might be of interest to readers to learn how to do something similar, so please read on for a step by step guide to my process.
You’ll learn about:
Searching for and downloading free 3D assets from Sketchfab.
Automatically optimising 3D assets for augmented reality (AR) with Rapid Compact.
Importing 3D assets into Blender, assembling a scene, and adding some 3D text.
Uploading the final scene to Sketchfab and making it ready to publish online.
Recording a video of the scene in AR on a smartphone.
Open access 3D models on Sketchfab
While I am biased from my time working at Sketchfab, I really don’t know of an easier to use 3D publication platform . Additionally, it is home to pretty much the most extensive community of cultural heritage 3D content you’ll find online.
Video summary above, more detailed description of steps below.
If you’re not familiar with it, Sketchfab is a community platform for publishing and sharing 3D models online. It’s a great place to publish your own 3D models, as well as find and develop a following for your creative 3D outputs.
Many creators on Sketchfab choose to make their 3D models freely downloadable so that other people may re-use and remix their work - so you can also think of Sketchfab as a vast library of free 3D assets. You can join Sketchfab for free.
Let’s take a look at how to browse and search Sketchfab for what we’re looking for.
Find High Quality Open Access 3D Models on Sketchfab
Start by navigating to sketchfab.com and login.
Now, there is a lot of 3D content available on Sketchfab, so you’ll do well to use the available features on the site to narrow down what you you see on screen.
Start with the search bar. Even if you’re not inputting a search term, this is the best place to begin. For our use case, we’re looking for cultural heritage content so let’s dial in that model category. This will return a list of every model in that category, for all time, sorted by likes.
We’re specifically looking for downloadable models, so we could check the ‘Downloadable’ box but this filter also includes paid-to-download content and we only want free 3D models, specifically ones that use the Creative Commons CC-BY or Free Standard licenses. Check those options from the ‘Licenses’ drop down.
From here we can scroll and browse until we find something we like the look of or, if we want to focus our options further, we can add a search term in the bar at the top.
Download the format(s) you need.
Once you find a 3D model we like the look of, click on it to open the model page.
Before downloading we can explore the model by rotating/zooming in 3D and using Sketchfab’s Model Inspector to see if it suits our needs. If all looks good, let’s hit that download link!
Sketchfab offers several file download options:
The original file format that the user uploaded
Also any additional files the user uploaded, e.g. a higher resolution.
USDZ*
glTF*
GLB*
This format also includes sub options for different texturemap sizes.
*These formats are auto-converted from the original upload by sketchfab.com. If you’re not what these formats are, the Sketchfab Help Center has you covered.
For this use case, let’s download the GLB version with the highest resolution texture. This format bundles up the geometry, material, and texture information into a single file (unlike, for example an OBJ or glTF package) and I’ve found that this format—aside from being convenient—plays well with RapidCompact in the following steps of our process.
At this point I also recommend copying the handily available attribution text that Sketchfab supplies in the download popup. We’ll need that later.
Repeat the above for as many models that you want to assemble in your scene. Bare in mind, however, that the more individual 3D models to try to combine in a single scene, the more you’ll need to optimise each individual asset for final download and viewing efficiency.
Speaking of which…
Automatically optimizing the 3D assets with RapidCompact
Optimising 3D assets can be tedious and time consuming, especially when you are working with 3D data that you did not create yourself. I’ve found RapidCompact to be a quick and easy to use solution.
Video summary above, more detailed description of steps below.
Note: it was at this stage that I switched screen recording software and did not realise the lower part of the screen was cropped off 🤦
RapidCompact is a cloud based utility for optimizing 3D assets for different use cases, automatically reducing face counts, texture counts and sizes, and converting formats from pretty much any 3D surface file format to another. RapidCompact offers a pretty generous free tier.
Uploading the file.
Log in and navigate to the upload page. Drag the GLB file you downloaded from Sketchfab from your OS folder onto the upload zone and hit ‘Upload’.
Choosing an optimization preset.
Once the file has finished uploading, it will show in your model management page. Check the box at the end of the listing, then move your attention to the ‘Optimization Settings’ section to the right.
There are a plethora of optimisation presets available (or you can even create your own), but I won’t go into details here - for the purposes of this guide, select one of the ‘Lens Studio’ presets. If you are combining a larger number of assets, I suggest use the ‘Low’ setting, for smaller groupings of assets you could opt for ‘Medium’ or ‘High’
The answer to “What face count and texture map dimensions should I use?” depends a lot on your subject, input data, and use case. My general advice for live/interactive use cases is to simplify your 3D data a much as possible: so the file is as light as possible while still being recognisable as the original subject.
Downloading the optimised file.
The optimisation process shouldn’t take too long and it will depend on the complexity of your input data and the output 3D model will show up on your Optimised Models page.
It is possible to download the optimised model from the preview card, but I recommend that you open the 3D preview to check that you’re happy with the optimisation before saving locally.
If you’re happy, hit the download button and choose the GLB file; if you’re not happy, go back to a previous step in the process and try different optimisation options.
If you’re optimisation repeatedly fails or if the output looks terrible, there may be something funky about the input data. For example, I’ve noticed that trying to automatically optimise a 3D surface model derived from CT scan data—which often has lots of hidden internal geometry—can throw a spanner in the works.
Repeat the optimisation and download steps for each 3D model that you want to add to your AR scene, then you’re ready to start assembling the scene in Blender!
Assembling a 3D scene in Blender
There are many premium 3D editors out there, but I’ve found that Blender has everything I’ve ever needed for working with cultural heritage 3D content.
Video summary above, more detailed description of steps below.
Note: my screen recording software has cut off part of the screen at the bottom🤦
Blender is a free, open source, fully featured 3D editor - you can download the latest version here. In this section of the tutorial I will be assuming a little prior knowledge in the steps below, but not a huge amount.
If you’re a complete newb to Blender there are extensive official tutorials and I’ve always found it easy enough to find even the most niche community tutorial with a quick web search for “How do I do this particular thing in Blender?”
Importing and placing your 3D models
Importing
Open up a fresh, blank scene in Blender and head to File > Import > glTF 2.0 (.glb / .gltf), navigate to the saved files you downloaded from RapidCompact, and import each asset.
At this point, and if you grabbed a variety of 3D models from different Sketchfab users, you will likely notice that the models are all different scales and import to locations far from the scene origin. This is part of life.
Setting the model origin
One workflow I often employ is to center each 3D object to the center of my scene and then begin artistic arrangement from there. To reset a 3D model to the center of your scene:
Left click select your model.
Hit F3 to open search panel.
Search for ‘Set Origin’.
Select ‘Origin to 3D Cursor’.
Hit F3 to open search panel.
This time, search for and select ‘Geometry to Origin’.
With everything in the middle we can start laying out our AR scene. If you are having trouble selecting assets that are overlapping, remember you can always select them in the Outliner panel in the top right.
Translating, rotating, & scaling the models
Once you’re ready to begin placing your 3D assets in their final positions, use the Grab tool (shortcut: g-key), Rotate tool (r-key), and Scale tool (s-key) as needed. You can limit any of these operations to a particular axis by hitting the x, y, or z key after you hut the tool keyboard shortcut. Left click or hit Enter/Return to commit to your updates, or if everything gets out of control hit Esc to cancel the operation or Ctrl-z to Undo (Ctrl-Shift-z to Redo).
Sometimes I find it helpful to switch to an orthographic scene view e.g. Front (Numpad-1), Right (Numpad-3), and Top (Numpad-7) before performing one of the above operations to aid exact placement
Note: the lowest part of any model will set the ‘ground’ for your scene when viewed in AR so make sure that everything aligns or that you are happy for some objects to be floating while some lie on the ground.
Adding a 3D text object in Blender and Exporting the Scene
Video summary above, more detailed description of steps below.
Note: my screen recording software has cut off part of the screen at the bottom🤦
Hit Shift-A to open the Add menu and select Text.
The text object will be added lying ‘flat’ on the ground of your scene, let’s stand it up: Left-click select the text object > hit R-key (rotate tool) > X-key (lock rotation to the X-axis) > type ‘90’ to rotate it 90 degrees so that it ‘stands up’ > Left-click or hit Return/Enter
With the text object selected, hit Tab to enter into edit mode: now you can delete and type in characters, spaces, new lines, etc. as normal.
Hit Tab again to get back to Object Mode.
Locate the text options in the right panel, it is denoted by a small ‘a’.
Font: hit the file icon and navigate to a font file on your system, assign a font to the Regular slot. You should see your text update accordingly.
Paragraph: adjust horizontal and vertical alignment as you wish.
Geometry: set Extrude as you like, 0.1 or 0.05 should be adequate for the default text size. Optional: set the Bevel to a Depth to 0.01.
When you are ready to commit to your 3D text (you will no longer be able to edit the text after this step) Left-click select the text object, then Right-click it and select Convert To > Mesh.
We need to do a little mesh clean up now:
Add and apply a Weld modifier using default settings. This will unify all faces of individual letters in to a single entity.
Add a Decimate Modifier and adjust the Ratio until juuuust before you see the mesh begin to deform, then apply it. For the text “The Spatial Heritage Review”, I was able to reduce the face count from 45,000 to 7,300.
Finally, add a new Material to the mesh and give it a meaningful name.
Export.
Refer to the video above, more detailed steps below.
File > External Data > Pack Resources
This step will pull all related texture files into the .blend file. Not always necessary but I’ve picked it up as a habit.File > Export > glTF 2.0 (.glb/.gltf) to export your scene as a glb file.
Upload your 3D scene to Sketchfab & Setting Model Properties
Video summary above, more detailed description of steps below. Note: my screen recording software has cut off part of the screen at the bottom🤦
Log back into your Sketchfab account, drag and drop your finished scene .glb onto any page to begin upload.
Model Properties
Give your scene a sensible title, description, and tags and set the appropriate category. Be sure to add the appropriate attribution credits to the model description!
Enable App Free AR (Premium).
Save.
3D Settings
Video summary above, more detailed description of steps below. Note: my screen recording software has cut off part of the screen at the bottom🤦
Open your model’s 3D Settings
General: Adjust the camera field of view (FOV) to something like 20°, this can help with legibility of your 3D text in the web view.
Materials: Review the materials for each object in your scene - do they look right? Adjust as necessary. Turn up the emission on the text if you want a bright, flat look.
Lighting: Adjust dynamic and environment lighting as desired, add a ground shadow.
Post-processing: adjust the post-processing filters. At a minimum, add some SSAO, a little sharpness, maybe a vignette, and a bit of contrast.
Add annotations for each model that requires attribution, and any more for your use case.
Set the scene scale and user starting position in AR/VR settings.
Save settings.
Publish your scene!
Capturing a video of the 3D Scene in AR
On a compatible device, open the Sketchfab model page for your scene, and tap the [AR] button in the bottom right of the 3D viewer. This will download the relevant AR file format (glTF for Android, USDZ for iOS).
Once the model loads on your device, tap a surface somewhere in your immediate environment to place the 3D model in AR.
On higher end Apple devices that have LiDAR sensors, you will likely find that surface tracking is a little better.
Both Android and iOS include built in ways to record the AR experience, normally by holding down the shutter button for the duration of time you wish to catpture a video. If you’re struggling or unable to keep your thumb stuck to the shutter button, consider using the built in screen recorder or downloading a free app.
Depending on your use case, you may want to capture as smooth a video as possible - in my experience (and maybe it’s just me!) I’ve found walking around a 3D model in AR would cause the video to judder at each footstep. Consider using your devices built in stabilisation post processing (available in the Photos app on Android) or using a camera gimbal during capture. I use a cheapish gimbal from Hohem.
All done!
I hope this tutorial has given you some insight into sourcing free 3D models, automatically optimising them, building a scene, and publishing it online for web and AR viewing.
Please leave feedback and let me know what other tutorials you’d like to see in the comments and if you like this kind of content, please consider subscribing to my newsletter below!
Attribution for 3D models used in this tutorial:
"Athena #3DST8" (https://skfb.ly/AEw8) by Digitage is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
"The Parade Shield of King Erik XIV of Sweden" (https://skfb.ly/6Rp9Y) by The Royal Armoury (Livrustkammaren) is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
"Wolf skull" (https://skfb.ly/6XFYr) by Virtual Museums of Małopolska is dedicated to the public domain via CC0 1.0 DEED (https://creativecommons.org/publicdomain/zero/1.0/).
"Italian Casket with Mythological Scenes, 1530" (https://skfb.ly/66QKA) by laurashea is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).