Allow uploading of 3D files to Wikimedia Commons
OpenPublic

Description

Author: david

Description:
Please allow registered users to upload .blend files to the commons. I would
like to start a repository of Blender 3D resources including .blend files for
public use and for use with certain Blender 3D wiki projects, such as
http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro .

Perhaps create a new type, instead of just Images and Sound, add Source Files,
or maybe Sources?

  • Primary mentor: @MarkTraceur
  • Co-mentor:
  • Estimated time for a senior contributor:
  • Skills required: PHP, JS, and a service to render 3D models on screen
  • Microtasks: Any easy tasks from Multimedia or #editing

This card tracks a proposal from the 2015 Community Wishlist Survey: https://meta.wikimedia.org/wiki/2015_Community_Wishlist_Survey

This proposal received 56 support votes, and was ranked #11 out of 107 proposals.

https://meta.wikimedia.org/wiki/2015_Community_Wishlist_Survey/Commons#3D_models_on_Wikimedia_Commons

Older changes are hidden. Show older changes.
NiharikaKohli moved this task to Missing Mentors on the Possible-Tech-Projects workboard.Via WebMar 19 2015, 6:44 PM
NiharikaKohli added a comment.Via WebMar 21 2015, 3:38 PM

Yay, I managed to find another mentor. I present to you........@MarkTraceur!

NiharikaKohli edited the task description. (Show Details)Via WebMar 21 2015, 3:39 PM
NiharikaKohli edited the task description. (Show Details)Via WebMar 21 2015, 4:06 PM
Steinsplitter added a project: Commons.Via WebMar 21 2015, 5:59 PM
Steinsplitter moved this task to Backlog on the Commons workboard.
Sj added a comment.Via WebMar 22 2015, 8:17 PM

Is there a separate bug for Blender files? That would still be awesome as well. Talking to Bassam K today, it sounds like writing a simple sanitizer came up on blender forums & shouldn't be hard.

adorazhang added a subscriber: adorazhang.Via WebMar 23 2015, 12:56 AM
Qgil added a comment.Via WebMar 23 2015, 10:31 AM

Also, since this task was created in 2005, 3D printing has become basically mainstream. I'm a total ignorant in file formats etc, but maybe there is a potential to collaborate with whoever is pushing for open formats in order to offer one day a subcategory of https://commons.wikimedia.org/wiki/Category:3D_printing with files of objects you could print yourself?

MarkTraceur added a comment.Via WebMar 23 2015, 3:59 PM

@Qgil I think it's safe to say that someone will, down the line, start a new project for 3D printer models.

Not that Thingiverse et al. aren't capable, but it'd be a cool addition to our little family. And we could pre-fill it with designs from the other sites.

JeanFred moved this task to File format support on the Commons workboard.Via WebMar 24 2015, 10:28 AM
NiharikaKohli added a comment.Via WebMar 24 2015, 4:03 PM

Hello! The IRC meeting tomorrow has been shifted to #wikimedia-ect channel. Looking forward to seeing you there. :)

jayvdb added a subscriber: jayvdb.Via WebMar 24 2015, 9:40 PM
NiharikaKohli moved this task to Featured Project Ideas on the Outreachy-Round-10 workboard.Via WebMar 25 2015, 10:07 AM
Micru awarded a token.Via WebMay 1 2015, 2:03 PM
Gilles removed a subscriber: Gilles.Via WebMay 4 2015, 9:38 AM
ori added a subscriber: ori.Via WebMay 6 2015, 4:05 AM

GLmol provides a means of doing this for molecules.

He7d3r added a subscriber: He7d3r.Via WebMay 13 2015, 5:07 PM
Clemclemmm added a subscriber: Clemclemmm.EditedVia WebMay 18 2015, 11:35 AM

the main file extension for 3d printing is :
.STL
but it's a colourless object.

there is the .VRML extension for objets with colors.

others extension used in the 3D printing world :
.OBJ .PLY .3DS
(not exaustive list)

an open plug in for view these files using three.js, and the most popular plug in :
https://github.com/tbuser/thingiview.js

Clemclemmm added a comment.Via WebMay 18 2015, 1:11 PM

what we need to allowing uploading this type of files ?

JeanFred added a comment.Via WebMay 18 2015, 1:18 PM

what we need to allowing uploading this type of files ?

For the general answer, see T90385 :)

Moushira added a subscriber: Moushira.Via WebMay 18 2015, 3:00 PM
greg removed a subscriber: greg.Via WebMay 19 2015, 9:34 AM

Looking around, it appears that X3DOM is the winning (and standards-supported) solution here. Is that right? If so, AFAICT this breaks down to five steps:

  1. Confirm that we can security-vet these files (no idea how hard this is)
    1. The spec suggests that external embedding is allowed only through CORS, which is still a lot of files in the Commons context but they're already passed so…
    2. Blocking scripting/animation and making them static might be necessary.
  2. Work out a strategy for server-rendering these files for non-compatible clients
    1. Probably easiest to sandbox Chrome / whatever and extract the first rendered frame? Given we've already built this for CI…
  3. Work out a strategy for supplying these files as interactive 3D embeds to compatible clients (via TMH-style lightbox?), and serving server-rendered else to non-compatible clients; we've not even done this for SVG files yet…
  4. Whitelist the new format (simplest thing)
  5. Add compatibility to editing transclusions of the files in e.g. VisualEditor.
  6. Consider new wikitext syntax (eww) to set the initial view on the file (equivalent to thumbtime=) and maybe 3D-specific other things?
Tgr added a comment.Via WebMay 24 2015, 10:16 AM

The spec suggests that external embedding is allowed only through CORS, which is still a lot of files in the Commons context but they're already passed so…

CORS generally protects the server from the reader, not the reader from the server. If a Commons file refers to evil.com/injection.x3d and evil.com sets Allow-Origin:commons.wikimedia.org on its responses, it will pass the CORS check. CSP can be used to create a domain whitelist, but I have no idea how it interacts with X3DOM.

Susannaanas added a subscriber: Susannaanas.Via WebJun 4 2015, 7:59 AM
Reguyla moved this task to Commons related on the Wikimedia-General-or-Unknown workboard.Via WebJun 16 2015, 2:20 PM
Wilfredor added a subscriber: Wilfredor.Via WebJul 6 2015, 2:12 PM

You can upload the file here
https://commonsarchive.wmflabs.org

And add the template:
{{Commons Archive|My_raw_file.dng}}

in your image in commons, look this example:
https://commons.wikimedia.org/w/index.php?title=File:Agraulis_vanillae_at_Isla_Margarita.jpg&action=edit

Also, you can upload any file type like NEF, PSD, 3DS....

Restricted Application added a subscriber: Matanya. · View Herald TranscriptVia HeraldJul 6 2015, 2:12 PM
Aeglius added a subscriber: Aeglius.Via WebAug 3 2015, 11:36 AM
Jdforrester-WMF moved this task to Backlog on the Multimedia workboard.Via WebSep 4 2015, 5:53 PM
BenHS added a subscriber: BenHS.Via WebSep 8 2015, 1:11 PM
Qgil added a comment.Via WebSep 23 2015, 9:00 AM

@MarkTraceur @JeanFred this project is still featured at Possible-Tech-Projects. Do you want to propose it for Outreachy-Round-11 for December-March?

Qgil added a comment.Via Bulk EditSep 23 2015, 9:36 AM

This is a message sent to all Possible-Tech-Projects. The new round of Wikimedia Individual Engagement Grants is open until 29 Sep. For the first time, technical projects are within scope, thanks to the feedback received at Wikimania 2015, before, and after (T105414). If someone is interested in obtaining funds to push this task, this might be a good way.

TasneemLo added a subscriber: TasneemLo.Via WebSep 28 2015, 3:27 AM

@MarkTraceur , @JeanFred are either of you still open to being a mentor for this for Outreachy-Round-11 ?

Aklapper added a comment.Via WebSep 28 2015, 9:13 AM

Reaching out via IRC or private email recommended in case deadlines are getting closer.

Qgil moved this task to Missing Mentors on the Possible-Tech-Projects workboard.Via WebSep 28 2015, 9:53 AM
MarkTraceur added a comment.Via WebSep 28 2015, 2:34 PM

I'm tentatively telling @TasneemLo that our priorities are in the following order:

  • Panoramic images (almost supported already)
  • 3D printing schematics
  • 3D videos

If anyone disagrees, please speak up.

Moushira added a comment.Via WebSep 28 2015, 2:49 PM

@MarkTraceur: By 3D printing schematics, we mean STLs?

Aklapper added a comment.Via WebSep 28 2015, 4:17 PM

What is an "STL"? Links are generally welcome.

TasneemLo added a comment.EditedVia WebSep 29 2015, 6:55 AM

@Moushira, yes it would be STL as that is the most popular format that most 3D printing softwares support. Did you have something else in mind ?

EDIT:
Ah, On further searching, I now realize that the AMF file format is even more popular than STL - and AMF has more features like color, etc.
Will have to check the format out. Thanks for bringing it up

JeanFred added a comment.Via WebOct 8 2015, 10:55 AM

So, should we put this task − or a subset − for Possible-Tech-Projects? @MarkTraceur, you still up to mentor this?

Ping @Bawolff as a potential co-mentor?

JeanFred edited the task description. (Show Details)Via WebOct 8 2015, 10:55 AM
Qgil moved this task to Need Discussion on the Possible-Tech-Projects workboard.Via WebOct 8 2015, 3:30 PM
Qgil added a blocked task: T107410: Wiki 3d warehouse.Via WebOct 22 2015, 3:50 PM
Elitre added a subscriber: Elitre.Via WebOct 23 2015, 10:31 AM
Psychoslave added a subscriber: Psychoslave.Via WebOct 29 2015, 2:36 PM
Bawolff added a comment.Via WebOct 29 2015, 9:39 PM

Ping @Bawolff as a potential co-mentor?

/me doesn't really want to commit to being a mentor for this round. (I would be willing to give advice to the student unofficially though if they run into anything tricky)

Tgr added a comment.Via WebOct 29 2015, 11:19 PM

I would be willing to give advice to the student unofficially though if they run into anything tricky

Isn't that exactly what a co-mentor should do? :)

Bawolff added a comment.Via WebOct 30 2015, 1:31 AM

Well I do that for any random person who asks me, time permitting.

I don't really want to commit to necessarily doing code review, or general mentoring of the student.

Moushira awarded a token.Via WebOct 30 2015, 5:17 PM
zhuyifei1999 added a subscriber: zhuyifei1999.Via WebNov 3 2015, 3:26 PM
Ebraminio awarded a token.Via WebNov 9 2015, 10:45 PM
Ebraminio added a subscriber: Ebraminio.
Reaper35 added a subscriber: Reaper35.Via WebNov 19 2015, 10:35 PM
JEumerus added a subscriber: JEumerus.Via WebDec 8 2015, 8:57 PM
DannyH moved this task to Wishlist 11-20 on the Community-Wishlist-Survey workboard.Via WebDec 15 2015, 8:25 PM
MichaelMaggs added a subscriber: MichaelMaggs.Via WebDec 15 2015, 8:58 PM
TasneemLo removed a subscriber: TasneemLo.Via WebDec 20 2015, 9:14 AM
Yurik added a subscriber: Yurik.Via WebDec 20 2015, 2:36 PM

github has a 3D viewer that can show visual 3D diffs - https://github.com/skalnik/peg-board-spindle/commit/7a1039fe5709ff49eec7800aa7259a5e5b536d05 - anyone knows if that tech is open source anywhere?

Rillke added a comment.Via WebDec 20 2015, 2:47 PM

github has a 3D viewer that can show visual 3D diffs - https://github.com/skalnik/peg-board-spindle/commit/7a1039fe5709ff49eec7800aa7259a5e5b536d05 - anyone knows if that tech is open source anywhere?

Client side they're using THREE.js

Yurik added a comment.Via WebDec 20 2015, 2:54 PM

@Rillke, thanks! What about the "diff" viewer? I think we would need that as part of the versionned 3D commons file store.

Rillke added a comment.EditedVia WebDec 20 2015, 3:09 PM

@Rillke, thanks! What about the "diff" viewer? I think we would need that as part of the versionned 3D commons file store.

It would be probably nice to have but we do not have such a feature for SVG files and that's probably a lot simpler and allow SVG uploads at Commons. I don't see this as something we must have. What we need though, is some server side support for thumbnails and client side we must ensure usability: Consider a category full of 3D-Modells: You don't want to launch the THREE.js WebGL renderer for all of them, killing your visitor's browsers. You probably want to show a thumbnail and a button "view in 3D".

See James' comment about the steps to take: T3790#1306431

Yurik added a comment.Via WebDec 20 2015, 3:14 PM

@Rillke, re server-side rendering - the Graphoid service already does that - draws graphs on a headless canvas in node.js and returns a png. If there is javascript lib that can function in a headless mode, we can easily create a service for it.

Rillke added a comment.Via WebDec 20 2015, 3:25 PM

@Rillke, re server-side rendering - the Graphoid service already does that - draws graphs on a headless canvas in node.js and returns a png. If there is javascript lib that can function in a headless mode, we can easily create a service for it.

Nice. What's the setup to test a Graphoid service or a local equivalent in headless mode?

Yurik added a comment.Via WebDec 20 2015, 3:32 PM

@Rillke, you need nodejs, git clone graphoid, npm install, and point config.yaml to config.dev.yaml (or simply rename it to config.yaml), and npm start. Browse to it with https://graphoid.wikimedia.org/www.mediawiki.org/v1/png/Extension%3AGraph%2FDemo/1964437/2e25518b199b22ab9043f7ce9a0cd1370b27d77a.png -- change server. Graphoid should be able to download graph from mediawiki.org and render it.

Reaper35 added a comment.Via WebDec 20 2015, 5:40 PM

@Yurik: Thank you for this information, I was always thinking about how to solve this on server side. But are you sure this could handle WebGL features? (At least this is part of T54655.)

For a diff feature (or at least a compare screen), we should create another task, or? At least it's rather needed for 3D objects than for 2D images.

Sketchfab.com for example uses OGS.JS. There are several very good examples on Sketchfab, take a look by searching for "photogrammetry". It seems that this library can handle up to 1~2 million polygons (older PC here) very good. Needs some comparison.

Yurik added a comment.Via WebDec 20 2015, 5:56 PM

@Reaper35, googling brought up gl and node-webgl, so sounds like its possible.

Ebraminio added a comment.EditedVia WebDec 20 2015, 8:19 PM

I was wondering if it would be possible to use a runtime 3d model and integrating glTF, a new JSON based standard backed by maintainers of OpenGL standard, somehow? https://github.com/KhronosGroup/glTF

From the given samples it looks simple and straightforward https://github.com/KhronosGroup/glTF/blob/master/sampleModels/README.md

Also it seems it supports various strategies, https://github.com/KhronosGroup/glTF/tree/master/sampleModels/duck Other than all-in-one embed and binary models there, which are somehow similar with SVG as having embedded textures as base64 images, maybe the plain one would be nice also if a model could use free images uploaded on commons as its textures.

Update: The thing happened on LibreOffice Impress, not very recently, with glTF: http://zolnaitamas.blogspot.com/2014/08/3d-models-in-impress-libreoffice-43.html

Tgr added a comment.Via WebDec 20 2015, 9:04 PM

@Yurik visual diffing should probably be a ticket of its own but see GitHub's blog post about their 3D differ. (They have some cool stuff for map and image diffs too.)

Ainali removed a subscriber: Ainali.Via WebJan 2 2016, 6:26 PM
NiharikaKohli removed a subscriber: NiharikaKohli.Via WebThu, Jan 21, 4:36 AM
Aklapper added a comment.Via Bulk EditThu, Jan 21, 2:54 PM
IMPORTANT: If you are a community developer interested in working on this task: The Wikimedia Hackathon 2016 (Jerusalem, March 31 - April 3) focuses on Community-Wishlist-Survey projects. There is some budget for sponsoring volunteer developers. THE DEADLINE TO REQUEST TRAVEL SPONSORSHIP IS TODAY, JANUARY 21. Exceptions can be made for developers focusing on Community Wishlist projects until the end of Sunday 24, but not beyond. If you or someone you know is interested, please REGISTER NOW.
Psychoslave added a comment.Via WebMon, Jan 25, 11:26 AM

I won't be able to come at this event, but if people are interested to work on this task, I would be happy to work with them remotely.

matmarex edited projects, added MediaWiki-File-management; removed Wikimedia-Media-storage.Via Bulk EditTue, Jan 26, 4:18 PM
DannyH edited the task description. (Show Details)Via WebFri, Feb 5, 11:44 PM

Add Comment