Currently E621 has 3D/perspective/stereogram content which can be viewed using newfangled 3D technolgies, such as AR, VR, drugs, 3D displays, etc. I'm bringing this up because there are several stereographic formats/techniques, and not all of them are inter-compatible. I'd like to open discussion on how to modify tags in a sane manner to support this.
Rationale: I'm preparing A web-based VR environment for imageboards to use in media viewing. Once this code is relatively stable and in its own repository from the project it's currently attached to I'm looking at helping E621 and other sites integrate it (hello!). Integration is a little off-topic, but I will say that it's not an invasive addition and adds no burden to the server. The "hard work" for E621 is tags used to configure how content is displayed. On an aside XR is the industry term for both VR and AR, or "eXtended reality".
TLDR: 3D/perspective/stereogram content tags need adjustment.
Here's the changes I'm proposing:
Tags to change:
- Convert "stereogram" to "stereogram_media", make it a meta tag.
- Convert "360_image" to "360_fov", make it a meta tag. Not all 360 FOV files are images, and FOV clarifies what is "360" about it. In XR this means wrapping the video around the viewer completly.
- Convert "anaglyph" to "anaglyph_(stereogram)", make it a meta tag.
Tags to add:
- "xr_media" meta tag. Used to signal that the media can be digested in XR. Note that not all XR-ready "media" is stereographic, and not all stereograms are XR ready.
- "immersive_media" Meta tag. Implies "xr_media". Some media works inside a "virtual screen", some work by replacing the "environment". This flags that the media should replace the environment.
- "180_fov" meta tag. Many VR videos use the 180-degree format. In XR this means wrapping the image around the front-half of the viewing space.
- "side_by_side_(stereogram)"; meta tag. Implies "stereogram_media" and "xr_media". Left image is seen on the left eye.
- "crosseye_(stereogram)"; meta tag. Implies "stereogram_media" and "xr_media". Used for media where the left and right pictures are reversed. Named because going "crosseyed" allows you to see the effect.
- "vertical_(stereogram)"; meta tag. Implies "stereogram_media" and "xr_media". Used for media where the left "eye" is stacked above the right "eye".
- "compressed_(stereogram)"; meta tag. Implies "stereogram_media" and "xr_media". Sometimes instead of "doubling" the width/height of the media, the resolution is "halved" per-eye. In VR this means stretching the stacked axis.
- "panoramic_distortion". Implies "perspective". Should NOT imply panoramic. Panoramic distortion is where the top and bottom of the image are heavily stretched, requiring a curved projection. It's basically a fisheye_lense, but only on the horizontal axis. This isn't super XR-specific. If there's other terms better suited here...
General assumptions and behaviours:
- "panoramic" takes on special meaning in XR. Panoramic images are projected onto a sweeping screen wrapping around the users. If the "panoramic_distortion" tag is also present, the image will be bowed with a 150 degree arc. The panoramic tag itself doesn't change at all in functionality, but maybe we'd want to add a note in its wiki entry.
- The "xr_media" should not be used independently. If it is used alone, it just shows the media in a virtual picture frame - "nothing special".
- The "immersive_media" tag should never be used independently. This is because, alone, it doesn't describe how to "immerse" the user. In XR it would fall back to "virtual picture frame" mode.
Footnotes
If these changes are acceptable I'd be happy to take a weekend and manually manage tags on affected posts. I'm also very open to discussion; the VR environment is being developed with imageboards in mind, so if these tags don't work, or need to change, or need a different structure.... I want to support something sane and appropriate. I'll also note that the tag names themselves won't be hardcoded in the vr system, but there is a general level of functionality to shoot for. Lastly, if you're an E621 dev (or any dev) reading this and want to reach out, please reach out! I don't bite. I don't have a public testing setup, but I'm open to discussion on setting one up after a couple more milestones.