MediaWiki extension which allows to add 3D models viewer to site pages. Based on THREE.js, renders image with CanvasRenderer. There you can see example 3D model page.
THREE.js model format:
- .json
- .3djson
- .3dj
- .three
THREE.js model buffer geometry format:
- .buff
- .buffjson
OBJ file format:
- .obj
STL (binary) file format:
- .stl
- .stlb
Download the latest snapshot and extract it to your extensions directory. Then include it in your LocalSettings.php file as in the following example:
wfLoadExtension( '3DAlloy' );
$wgFileExtensions = array_merge(
$wgFileExtensions, array(
'json', '3dj', '3djson', 'three',
'buff', 'buffjson',
'obj',
'stl', 'stlb'
)
);
[[File:Model.json|300x300px|color=,opacity=,...]]
{{#3d:Model.json}}
{{#3d:Model.json|width}}
{{#3d:Model.json|width|height}}
...
{{#3d:Model.json|width|height|color|opacity|zoom|pan|norotate|scale|z|style|class}}
Instead of uploaded filename you can use an url for file located in external site.
<3d file="Model.json" width="" height="" ... ></3d>
or
<3d width="" height="" ... >Model.json</3d>
You also can use url instead of short filename.
Name | Description | Default value |
---|---|---|
width | Canvas width in pixels | 300 |
height | Canvas height in pixels | 300 |
color | Model RGB color as hex | 0xff00ff |
opacity | Model opacity as decimal between 0...1 | 0.8 |
zoom | If true or 1, canvas can be zoomed | false |
pan | If true or 1, canvas can be panned | false |
norotate | If true or 1, model does not rotate | false |
scale | Model scale | 1 |
z | Model z coordinate | 75 |
style | Additional canvas CSS style | |
class | Additional canvas HTML class |
Width and height can be set to 0 value, so size of viewer will be set according to user screen dimensions.
All default values can be changed in your LocalSettings.php file:
$wg3DAlloy["width"] = 500;
$wg3DAlloy["height"] = 400;
...
$wg3DAlloy["class"] = 'someclass';
Action | Controls |
---|---|
Camera rotate | Swipe, left mouse key hold and move |
Camera zoom (if zoom enabled) | Mouse wheel, hold wheel and move, pinch |
Camera pan (if pan enabled) | Right key hold and move |
Model rotate | ←↑→↓ keys |
Model rotation reset | Home key |
Model rotation play/pause | Double click, double tap |
Model rotation play/pause all models at page | Enter, Space keys |
Model rotation speed | - and + keys |
Hotkeys automatically disables while you edit or submit wiki page. |