Commons:Textured 3D - Wikimedia Commons (original) (raw)

From Wikimedia Commons, the free media repository

Take a look at our prototype for textured and animated 3D models: MediaWiki3D.org. Explore Wikipedia articles with interactive 3D models for an immersive learning experience.

Screenshot of MediaWiki3D.org - Prototype for textured 3D models.

Wikimedia Commons currently only supports colorless, untextured 3D models, which only show the basic geometric shape of objects. This page tracks the progress towards adding support for 3D formats capable of full-color, textured 3D models—i.e. where images of the surface appearance are overlaid onto the 3D shapes to provide a more realistic and detailed appearance. Animated 3D models can illustrate how objects or processes change over time, making dynamic developments clearer than static 3D models. By integrating the time axis, they enrich understanding of historical evolution, scientific transformations, or mechanical functions in motion. This page also contains a list of resources and links to get involved, as well as some example 3D models that would fit on Commons once such support is in place.

MediaWiki3D logo

3D models have been supported in Wikimedia Commons since 2018, but only the STL format can be used at the moment. STL is a format designed for 3D printing that does not support textures, color, and more nuanced digital representation.

The current issues surrounding Sketchfab show how important a non-commercial platform for sharing and visualising textured 3D models would be: thus there is significant urgency due to current developments. Tens of thousands of 3D models under free licences are under threat, and in a petition to Sketchfab it is said that "this is the virtual equivalent of burning the Library of Alexandria". Here is a petition with lots of background information.

Technical realisation

[edit]

There are several open standards for textured 3D models. Concrete wishes for integration exist for the following formats:

These formats have different purposes, summarized well in Last-mile vs. Interchange. The guide was written for an audience from the animation or game development industries, where "last-mile" means the input to an offline rendering or game build pipeline (as opposed to the input one of the many tools used to create and refine that 3D asset). For the Commons — publishing lightweight interactive illustrations on the web — it's necessary to further restrict that "last-mile" definition to formats suitable as inputs to a web page or mobile app, on a consumer laptop or mobile phone. Consider file size: does the format support compression? And parsing complexity: does the format require a large SDK?

The glTF (Graphics Library Transmission Format) file format is an open standard for textured three-dimensional scenes and models (ISO/IEC 12113:2022). The extension .glb is the binary version of this format. Work has already been carried out for this format to extend the MediaWiki Extension:3D. Among candidate formats, the glTF format is unique in supporting the types of compression and optimization that would be important for efficiently publishing 3D models on the web. However, just because a file is in a particular format does not guarantee that any optimizations have been applied, and data pre-processing (see below) must still be considered even if the source file is in a "last-mile" format.

Libraries like Sketchfab accept uploads of 3D models in many formats, automatically convert the source model to several common formats users can choose for purchase/download, and additionally convert the model to a closely-managed proprietary format, optimized for loading and rendering in Sketchfab's own infrastructure. The source model (which could be in a much less efficient format, such as OBJ) is not downloaded by users viewing the webpage; it is only downloaded if the user explicitly chooses to download the model as a file, and selects .obj as their preferred format. As of this writing, Commons uses the three.js rendering library for 3D model rendering, which recommends the glTF file format where possible.

In general, conversion between any two "standard" formats is likely to be lossy; material/appearance representations in different formats may vary widely. For geometry there may be some difference in internal structure (triangles vs. quads and n-gons) but the visual appearance would look the same to a viewer.

As a first implementation, support should be added for a single last-mile format, such as glTF. Data pre-processing should be included, to verify that the model is valid and has been optimized by the uploader within some reasonable limits. Later, support for uploading in more interchange or antique formats could be added, potentially by automatically converting to and optimizing a derived last-mile asset.

Technical realisation - status quo - STL

[edit]

Only STL files are supported - no textured 3D models.

There are two main components for 3D in MediaWiki:

Both components are based on outdated versions of three.js (v88). Preliminary considerations for the update: Three.js v163 removed support for WebGL 1, but 3d2png depends on headless-gl, which only supports WebGL 1. For consistency we should stick with three.js v162.

Technical realisation - GLB support - 3D Viewer - Status of the work

[edit]

Technical realisation - GLB support -thumbnail generator - Status of the work

Technical realization - Update mime.info - Status of the work

Test dataGLB files for testing:

Future Requirements Viewer/Thumbnail generator

[edit]

Content to better integrate in this article:

[edit]

Without textures polygons are visible and things hard to discern

How it would look like with colored textures

Featuring 3D renderings of notable objects and places offers great opportunities for improving Wikipedia articles by making them both more engaging for readers whilst also helping them better comprehend the subject.

Support for featuring 3D renderings of objects has become increasingly common and better supported on the internet generally; however this support is not currently matched on Wikimedia Commons thereby limiting Wikipedia's ability to feature 3D objects.

As stated in a blog post on the publication of the original basic 3D support in Commons (source below):

In the future, after feedback from our community of volunteer editors, we’ll consider adding support for even more complex file types that support features like textures.

The time to add support for these features is now. Most modern smartphones are able to create 3D-Scans of smaller objects or even complete buildings rights now and there is no way to upload and display them in Wikimedia projects! There are several large sources of free textured 3D models.

Possible use cases of colorful, interactive and complex 3d models in Wikipedia articles:

This is great, but pretty boring. We need color! ;)

Resources:

Wikimania poster and meetup

[edit]

Gabriel Lucas at a podium with slideshow

presentation slide about 3D content

Gabriel Lucas' presentation “3D content” is available here on YouTube. See also category:Wikimania 2025 — Day 3.

Poster by Discott that will be displayed at Wikimania 2023.

WMF C-Levels and other staff talking about how to best action 3D support on Wikipedia.

I have a number of photogrametric 3D models on Commons, all of which would benefit from texturing: even in simple cases, texturing gives indications of materials (is a statue made of bronze, marble, clay...?), and conveys verisimilitude through little details such as weathering or ambient occlusion.

No indication of material, and scarcety of details

More importantly, some models suffer greatly from being only clay models: for instance polychrome archaeological artefacts are improperly represented by clay models.

polychrome archaeological artefact improperly represented by an untextured models

Finally, on the technical side, not having textures forces us to upload high polygon models. The possibility to embed bump maps and displacement maps would allow conveying the same amount of detail with much smaller models (one order of magnitude fewer polygons at least).

Meetings of the Textured 3D Group

[edit]