Page 1 of 5

PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 06 Feb 2014 22:56
by Zephyris
PixelTool
I have never been very good at drawing vehicles, particularly getting complex shapes of train engines correct. This online tool based on HTML5 canvas and javascript should help people like me draw nice vehicle sprites! I recommend trying it in Chrome:

http://www.richardwheeler.net/interacti ... ltool.html

You can also not access the latest development snapshot (which might not be fully functioning!) here:

http://bundles.openttdcoop.org/pixeltool/push/LATEST/

Try it out by clicking on the palette to select a colour, then clicking on one of the three orthogonal views to change that voxel's colour. The rendered image at the bottom will then automatically update. You can navigate the 3D voxel volume using the X, Y and Z slices or the mouse wheel.

Description of Controls
Note about the axes: X, Y and Z are consistently in the width (along the length of the carriage), depth (across the width of the carriage) and height (up the height of the carriage) directions respectively.

New Image:
Width, Height, Depth. Set these values and click "New Image" to make a new 3D image with those dimensions. This clears all voxels back to transparent.

Editing Options:
X slice, Y slice, Z slice. These control the x, y and z slices through the voxel volume that are displayed for editing in the orthogonal views.
X symmetric, Y symmetric. Toggle these to control whether to automatically mirror modifications in the x and y directions.
Modify whole pixel stack. When this is disabled, clicking on a voxel only alters that indiviual voxel. When it is enabled the whole stack of pixels orthogonal to that slice are modified.

Display Options:
UI display scale: Pixels per voxel. This is the factor by which the palette and orthogonal views are scaled up for easy clicking.
Output display scale: Pixels per pixel. This is the factor by which the output is scaled up for easy viewing. Set it to 1 to get the actual-size output image.
Shade pixels by height, Shade pixels by ambient occlusion, Shade by lighting/shadowing: Toggle these to control which shaders are used to shade the output image.

Data and Saving:
JSON data: The current volume dimensions and voxel values are described by JSON data. Editing a voxel colour updates this data. Downloading this data can be used to save a design.
Load JSON: Load any JSON data that has been pasted into the JSON data box. Manual alteration of individual pixels is not recommended. Pasting some saved data into the JSON data box then clicking Load JSON loads the saved data.

Images:
There are 3 images:
1: Orthogonal views of the voxel data. You can change the slice displayed using the X slice, Y slice and Z slice options. Click on the image to set that voxel or voxel stack to the selected palette index.
2: Palette. Click on the image to select a palette index. That colour is then applied to a voxel when you click on one of the orthogonal views
3: Output. This automatically updates every second from the current voxel data (if automatic rendering is enabled) or once the render button has been clicked.

Examples
Here are a couple of examples of voxel data and output sprites you can play with:

Rail Passenger Carriage
Rail_Carriage_Passenger.png
Rail_Carriage_Passenger.png (1.49 KiB) Viewed 17234 times
{"width":32,"height":10,"depth":12,"pixels":[[[0,0,4,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,42,42,42,42,42,0,5,0],[0,42,42,0,0,0,42,0,0,0],[0,42,0,0,0,0,42,0,0,0],[0,42,0,0,0,0,42,0,0,0],[0,42,42,0,0,0,42,0,0,0],[0,0,42,42,42,42,42,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,4,0,0,0,0,0,5,0]],[[0,0,4,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,4,4,4,4,4,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,0,4,4,4,4,4,4,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,4,0,0,0,0,0,0,0]],[[0,21,203,66,203,203,85,66,5,0],[0,21,203,203,203,203,85,203,2,0],[22,21,203,203,203,203,85,203,2,0],[22,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[22,203,203,203,203,203,85,203,2,0],[22,21,203,203,203,203,85,203,2,0],[0,21,203,203,203,203,85,203,2,0],[0,21,203,66,203,203,85,66,5,0]],[[0,21,203,66,203,203,85,66,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,203,203,203,203,203,203,203,0],[22,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[22,203,203,203,203,203,203,203,203,0],[22,21,203,203,203,203,203,203,203,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,66,203,203,85,66,5,0]],[[0,21,203,21,21,21,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,6,6]],[[0,21,203,21,21,21,85,203,7,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,7,6]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,131,131,131,85,203,7,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,7,6]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,21,21,21,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,5,0]],[[0,21,203,21,21,21,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,5,0]],[[0,21,203,203,203,203,85,203,5,4],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,203,203,203,85,203,5,4]],[[0,21,203,203,203,203,85,203,5,4],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,203,203,203,85,203,5,4]],[[0,21,203,21,21,21,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,5,0]],[[0,21,203,21,21,21,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[4,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,5,0]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[8,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,131,131,131,85,203,7,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,7,6]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[6,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,131,131,131,85,203,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,5,0]],[[0,21,203,131,131,131,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,131,131,131,85,203,6,6]],[[0,21,203,21,21,21,85,203,7,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,7,6]],[[0,21,203,21,21,21,85,203,6,6],[0,21,203,203,203,203,203,203,203,0],[22,21,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[23,203,0,0,0,0,0,0,0,0],[22,203,0,0,0,0,0,0,0,0],[22,21,0,0,0,0,0,0,0,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,21,21,21,85,203,6,6]],[[0,21,203,66,203,203,85,66,5,0],[0,21,203,203,203,203,203,203,203,0],[22,21,203,203,203,203,203,203,203,0],[22,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[23,203,203,203,203,203,203,203,203,0],[22,203,203,203,203,203,203,203,203,0],[22,21,203,203,203,203,203,203,203,0],[0,21,203,203,203,203,203,203,203,0],[0,21,203,66,203,203,85,66,5,0]],[[0,21,203,66,203,203,85,66,5,0],[0,21,203,203,203,203,85,203,2,0],[22,21,203,203,203,203,85,203,2,0],[22,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[23,203,203,203,203,203,85,203,2,0],[22,203,203,203,203,203,85,203,2,0],[22,21,203,203,203,203,85,203,2,0],[0,21,203,203,203,203,85,203,2,0],[0,21,203,66,203,203,85,66,5,0]],[[0,0,4,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,4,4,4,4,4,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,4,1,1,1,1,1,4,0,0],[0,0,4,4,4,4,4,4,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,4,0,0,0,0,0,0,0]],[[0,0,4,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,42,42,42,42,42,0,5,0],[0,42,42,0,0,0,42,0,0,0],[0,42,0,0,0,0,42,0,0,0],[0,42,0,0,0,0,42,0,0,0],[0,42,42,0,0,0,42,0,0,0],[0,0,42,42,42,42,42,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,4,0,0,0,0,0,5,0]]]}
Rail Flatbed Wagon with Steel
Rail_Carriage_Flatbed_Steel.png
Rail_Carriage_Flatbed_Steel.png (1.41 KiB) Viewed 17234 times
{"width":32,"height":10,"depth":12,"pixels":[[[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,0,5,0]],[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,0,0]],[[0,0,0,0,9,8,7,203,5,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,10,9,10,108,203,2,0],[0,0,0,10,9,10,110,203,2,0],[0,0,0,10,9,10,110,203,2,0],[0,0,0,10,9,10,108,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,9,8,7,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,7,7,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,7,7,7]],[[0,0,0,0,0,0,109,7,8,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,7,8,7]],[[0,0,0,0,0,8,7,7,7,7],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,8,7,7,7,7]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,7,7,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,7,7,7]],[[0,0,0,0,9,8,7,7,8,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,9,8,7,7,8,7]],[[0,0,0,0,0,0,109,7,7,7],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,109,7,7,7]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,8,7,203,5,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,8,7,203,5,0]],[[0,0,0,0,0,0,109,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,5,0]],[[0,0,0,0,0,0,109,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,5,0]],[[0,0,0,0,0,8,7,203,5,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,8,7,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,109,7,7,7],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,109,7,7,7]],[[0,0,0,0,9,8,7,7,8,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,9,8,7,7,8,7]],[[0,0,0,0,0,0,108,7,7,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,9,10,110,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,7,7,7]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,0,8,7,7,7,7],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,8,7,7,7,7]],[[0,0,0,0,0,0,109,7,8,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,0,0,0,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,7,8,7]],[[0,0,0,0,0,0,108,7,7,7],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,110,203,0,0],[0,0,0,10,9,10,108,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,7,7,7]],[[0,0,0,0,0,0,108,203,5,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,109,203,0,0],[0,0,0,10,10,10,108,203,0,0],[0,0,0,10,9,10,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,109,203,0,0],[0,0,0,0,0,0,108,203,5,0]],[[0,0,0,0,9,8,7,203,5,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,10,9,10,108,203,2,0],[0,0,0,10,9,10,110,203,2,0],[0,0,0,10,9,10,110,203,2,0],[0,0,0,10,9,10,108,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,0,0,110,203,2,0],[0,0,0,0,9,8,7,203,5,0]],[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,4,0],[0,0,0,0,0,0,0,0,0,0]],[[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,5,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,5,6,0],[0,0,0,0,0,0,0,0,5,0]]]}
Maglev Engine
Rail_Maglev_Engine_1.png
Rail_Maglev_Engine_1.png (2.06 KiB) Viewed 17234 times
{"width":32,"height":10,"depth":12,"pixels":[[[4,204,203,203,203,204,21,85,0,0],[4,204,204,204,204,204,204,204,0,0],[2,204,204,204,204,204,204,204,0,0],[2,204,204,42,42,42,42,42,0,0],[6,204,42,2,2,2,2,42,0,0],[6,42,2,2,2,2,2,42,0,0],[6,42,2,2,2,2,2,42,0,0],[6,204,42,2,2,2,2,42,0,0],[2,204,204,42,42,42,42,42,0,0],[2,204,204,204,204,204,204,204,0,0],[4,204,204,204,204,204,204,204,0,0],[4,204,203,203,203,204,21,85,0,0]],[[4,204,205,205,205,204,21,85,4,0],[4,204,204,204,204,204,204,204,0,0],[2,204,204,204,204,204,204,204,0,0],[2,204,204,204,204,204,204,204,0,0],[6,204,204,204,204,204,204,204,0,0],[6,204,204,204,204,204,204,204,0,0],[6,204,204,204,204,204,204,204,0,0],[6,204,204,204,204,204,204,204,0,0],[2,204,204,204,204,204,204,204,0,0],[2,204,204,204,204,204,204,204,0,0],[4,204,204,204,204,204,204,204,0,0],[4,204,205,205,205,204,21,85,4,0]],[[4,204,204,204,204,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,21,85,4,0]],[[4,204,205,205,205,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,205,205,205,204,21,85,4,0]],[[4,204,203,203,203,204,21,85,66,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,203,203,203,204,21,85,66,0]],[[4,204,204,204,204,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,21,85,4,0]],[[4,204,205,205,205,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,205,205,205,204,21,85,4,0]],[[4,204,203,203,203,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,203,203,203,204,21,85,4,0]],[[4,204,204,204,204,204,21,85,66,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,21,85,66,0]],[[4,204,205,205,205,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,205,205,205,204,21,85,4,0]],[[4,204,203,203,203,204,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[2,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,203,203,203,204,21,85,4,0]],[[4,204,204,204,204,21,21,85,4,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,21,21,85,4,0]],[[4,204,204,204,21,21,204,85,66,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,21,21,204,85,66,0]],[[21,21,21,21,21,204,204,85,4,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,21,21,21,21,204,204,85,4,0]],[[21,21,21,21,204,204,204,85,4,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,204,204,204,204,204,204,204,204,0],[21,21,21,21,204,204,204,85,4,0]],[[4,204,204,204,204,204,85,85,4,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,85,85,4,0]],[[4,204,204,204,204,85,85,204,66,0],[4,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,204,204,204,204,0],[4,204,204,204,204,85,85,204,66,0]],[[0,204,204,204,204,85,204,204,4,0],[0,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[0,204,204,204,204,204,204,204,204,0],[0,204,204,204,204,85,204,204,4,0]],[[0,0,204,204,204,85,204,204,4,0],[0,0,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[0,0,204,204,204,204,204,204,204,0],[0,0,204,204,204,85,204,204,4,0]],[[0,0,0,204,204,85,204,204,4,0],[0,0,0,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[0,0,0,204,204,204,204,204,204,0],[0,0,0,204,204,85,204,204,4,0]],[[0,0,0,0,204,85,204,204,66,0],[0,0,0,0,204,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[6,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[0,0,0,0,204,204,204,204,204,0],[0,0,0,0,204,85,204,204,66,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,204,204,204,204,204,204,204,204,0],[5,132,204,204,204,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,132,204,204,204,204,204,204,204,0],[0,132,204,204,204,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,66,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,132,132,132,132,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,66,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,0,132,132,132,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,66,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,66,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,85,204,204,4,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,204,204,204,204,0],[0,0,0,0,0,85,204,204,4,0]],[[0,0,0,0,0,0,85,85,0,0],[0,0,0,0,0,0,51,51,0,0],[0,0,0,0,0,0,51,51,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,204,204,0,0],[0,0,0,0,0,0,51,51,0,0],[0,0,0,0,0,0,51,51,0,0],[0,0,0,0,0,0,85,85,0,0]]]}
You can load these data by copying the quoted code into the JSON data box, and clicking on Load JSON.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 06 Feb 2014 23:30
by Supercheese
Oh, extremely nice, I'll play around with this for sure. :bow:

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 00:38
by jvassie
Wow, this is incredible! Amazing work Zephyris! Definitely going to play around with this some more

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 09:43
by planetmaker
Oh, nice tool :) The attached screenshot was not more than 10 minutes work and looks quite decent for that already :)

I'm a bit confused about a few details (see attached image):
* The 4th and 6th sprite seem to show an open wagon front (short side).
* The roof output (1st, 5th sprite) is not as symetric as it should (right edge pixels of roof)
* The colouring of the orange line below the roof seems destinctly more red in the 4th and 8th sprite, unlike in the other views.
* The dark rectangle on the short side seems distinctly offset to the left on sprite 8.

EDIT: A nice extension would also be to be able to forget about palette and use a 32bpp or rgb colour picker. What are the server-side requirements for this setup?

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 11:23
by Zephyris
planetmaker wrote:The 4th and 6th sprite seem to show an open wagon front (short side)
I guess the sides of the carriage are a single voxel thick... If you thicken them by one it should stop the transparency glitch, and improve the shadowing.
planetmaker wrote: The roof output (1st, 5th sprite) is not as symetric as it should (right edge pixels of roof)
Yeah, this is an issue. The problem is that in diagonal views the pixels map like a carriage is 12px wide, but in vertical views it is 8px. I need to write a custom rounding function for the y direction really!
planetmaker wrote:The colouring of the orange line below the roof seems destinctly more red in the 4th and 8th sprite, unlike in the other views.
I guess this is because you picked this orange colour in the dark red-orange-light yellow shading series... If you pick one of the brown/orange shading series it'll probably work a little better.
planetmaker wrote:The dark rectangle on the short side seems distinctly offset to the left on sprite 8.
I guess this is linked to the scaling in the y direction too, I'll take a closer look though.
planetmaker wrote:A nice extension would also be to be able to forget about palette and use a 32bpp or rgb colour picker. What are the server-side requirements for this setup?
32bpp would be possible, but everything is built assuming palettes so it would take a bit of work! The server side requirements are zero, it is 100% client side javascript.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 13:13
by Japa
Nice tool!

Really needs a click and drag ability, though. Also some larger brushes would be useful on larger sprite sizes.

Another useful shortcut would be to be able to select the slice location by licking on the image with a modifier, like ctrl+click.

Also color picking from the image.

Does this respect custom colors?

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 14:01
by Zephyris
Japa wrote:Really needs a click and drag ability, though. Also some larger brushes would be useful on larger sprite sizes.
Mmm. Both good ideas. Click and drag would be possible, but will need a complete revamp of the way the orthogonal views are drawn as it would not be responsive enouth. A larger brush may be possible...
Japa wrote:Another useful shortcut would be to be able to select the slice location by licking on the image with a modifier, like ctrl+click. Also color picking from the image.
Both good ideas too! Somewhat easier than the click/drag.
Japa wrote:Does this respect custom colors?
Do you mean company colours? Yes; so long as you pick palette entries from the ranges which correspond to the CC or 2CC colours then they will always be shaded to different shades of company colour.
Palette animated colours are also recognised and not shaded, so you can add flashing lights to your train and it will work :)

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 16:58
by Japa
Zephyris wrote:
Japa wrote:Really needs a click and drag ability, though. Also some larger brushes would be useful on larger sprite sizes.
Mmm. Both good ideas. Click and drag would be possible, but will need a complete revamp of the way the orthogonal views are drawn as it would not be responsive enouth. A larger brush may be possible...
Actually, on that note, once you start getting to 4x zoom sprites, even the current system starts getting responsiveness issues. Perhaps have a toggle between manual and automatic sprite updates?

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 17:17
by Zephyris
I haven't profiled it, but I think the major responsiveness issue probably comes from the complete redraw of the orthogonal views every time a voxel is changed. Simply changing that to only update the modified voxels should be a major improvement. The rendering also currently repeats after 100ms, it would be simple to make it repeat only at longer time intervals as the rendering time increases. Automatic vs manual rendering is also a great idea, should be fairly easy to do.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 08 Feb 2014 19:28
by andythenorth
I find your ideas intriguing and would like to subscribe to your newsletter...

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 11 Feb 2014 13:52
by juzza1
Would it be difficult to implement different amounts of views for the output sprites, instead of the fixed eight? This setting would be choosable by the user.

Example: CETS sprites, for each standard view there are two extra sprites: http://dev.openttdcoop.org/projects/cet ... normal.png

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 11 Feb 2014 16:20
by Zephyris
juzza1 wrote:Would it be difficult to implement different amounts of views for the output sprites, instead of the fixed eight? This setting would be choosable by the user.
If OpenTTD used true 3D rotations then this would be pretty simple. Because it actually uses stretched vertical and horizontal views it makes it a bit more complicated...

Code: Select all

	//Pointing SW
	//Flip x and y
	canvases[5].width=(depth/2+width/2)*outScale;	
	canvases[5].height=(width/4+depth/4+height)*outScale;
	ctxs[5].fillStyle="rgba("+palette[transparentIndex][0]+", "+palette[transparentIndex][1]+", "+palette[transparentIndex][2]+", 1)";
	ctxs[5].fillRect(0, 0, canvases[5].width, canvases[5].height);
	var shadowVector=[[-1, -1, -1], [0, -1, -1], [-1, 0, -1]];
	for (var x=0; x<width; x++) {
		for (var y=0; y<depth; y++) {
			for (var z=0; z<height; z++) {
				i=pixelShader(x, y, z, shadowVector);
				drawPixel(ctxs[5], (width-x-1)/2+(depth-y-1)/2, width/4-(width-x-1)/4+(depth-y-1)/4+z, i);
			}
		}
	}
This is the chunk of code used to make the render of a particular orientation, the things that you would need to work out are:
* Correct canvas width and height to use
* Shadow vectors to use for shading
* Scan direction (i.e. whether to start x low or high, start y low or high)
* The voxel to pixel mapping function. In this example output image horizontal position is given by (width-x-1)/2+(depth-y-1)/2, and output image vertical position is given by width/4-(width-x-1)/4+(depth-y-1)/4+z, where x, y, z is the 3D location of the voxel.

In principal linear interpolation would probably work, though TBH I am not sure I can spare the time to try and get it to work...

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 11 Feb 2014 21:16
by Zephyris
This tool now has a repo at OpenTTD Coop: http://dev.openttdcoop.org/projects/pixeltool
I will push my changes to that repo and it will have the latest changes, although there may occasionally be some bugs... So far I have added:
* Drag to draw
* Improved drawing speed of orthogonal views
* Manual enable/disable of rendering, and a manual rendering button

I will also keep updating www.richardwheeler.net/interactive/pixeltool.html with versions I deem completely stable occasionally.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 11 Feb 2014 23:49
by Hans Kruzer
I will certainly use this a bit now! Will speed up things :D Though, when it comes to it, I shall still inspect it's outcome sprites by hand.
Thanks for this link, for now we can blitz through sprites :twisted:

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 12 Feb 2014 00:57
by PikkaBird
Zephyris wrote:If OpenTTD used true 3D rotations then this would be pretty simple. Because it actually uses stretched vertical and horizontal views it makes it a bit more complicated...
OpenTTD uses whatever sprites you give it. You don't have to stretch the vertical and horizontal views.

The fix for vehicle speed in v/h directions appears to be relatively simple, so perhaps if more newgrfs (and even base sets) didn't stretch their sprites we'd be able to make a case to the devs to include that patch, or similar, as an optional setting. :)

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 12 Feb 2014 12:59
by Eddi
juzza1 wrote:Example: CETS sprites, for each standard view there are two extra sprites: http://dev.openttdcoop.org/projects/cet ... normal.png
well what i did was make a hand-crafted "floor plan" which lays out the dimension (for each vehicle length), to make some really basic geometric shapes. not sure if it is at all compatible with this kind of project, but maybe would be helpful.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 15 Feb 2014 16:39
by Zephyris
Hey all,

I have made some major updates, incorporating several of the changes suggested here. You can play with the latest version here: http://www.richardwheeler.net/interacti ... ltool.html
The biggest change is a switch to a more user-friendly page layout, which should make it a lot more intuitive to use.

I think the last couple of changes to make it "finished" are:
* Switch to select whether to use OpenTTD vehicle-like or building-like rendering.
* Colour picker tool.
* Download button for the final rendered image.

Other changes I could make, and might depending on time constraints, are:
* Custom palettes (for use in other projects).
* Screen-space based shaders (e.g. sprite outline, depth-based outlines)
There are still some internal improvements that would be valuable:
* Reformat rendering code to a 2D array rather than canvas-based calculation to improve speed.
* Setup rendering by a single function with x, y, z mapping functions and scan directions.

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 15 Feb 2014 17:35
by jvassie
Looking good Zephyris.

One small thing though, think you might have got the labels for front and side the wrong way round? Might be best using 'End' for what is currently labelled as 'Side'?

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 17 Feb 2014 12:14
by SkiddLow
HELP ? Please Renderring the Toyota Yaris (XP150) Hatchback (Because XP130 Is used for Developed Countries) for IRVS.

Image

Re: PixelTool - Voxel-based Vehicle Editor/Renderer

Posted: 17 Feb 2014 12:21
by planetmaker
SkiddLow wrote:HELP ? Please Renderring the Toyota Yaris (XP150) Hatchback (Because XP130 Is used for Developed Countries) for IRVS.
The tool is readily available for convenient usage in your browser: http://bundles.openttdcoop.org/pixeltool/push/LATEST/
Just start drawing. And mind that this is not a thread suitable for "please draw me this" - requests.
Explanation of the usage is found in the first posting of this thread.