Welcome to picoCAD 2!
picoCAD 2 is a simple to use low poly 3D modeling program. Rich with limitations and restrictions, it lets you work without getting lost in a myriad of complex interactions.
Feature list
- Focused toolset to create low poly models
- Unique aesthetic with limited colors and retro shading style
- Built-in texture editor to see pixel art appear on the model as it is drawn
- Customize palette and shading colors
- Animation tools that bring your models to life
- Organisation tools for project structire as well as hiding and locking specific parts
- Export easily sharable GIFs
- OBJ and GLTF export for quick import into any modern game engine
- Spritesheet export
- Different UI themes
- Made in Sweden
About
picoCAD is built by Johan Peitz and published by Apskeppet. See the about section within the program for full list of credits.
Join the picoCAD community discord for jams, feedback, bug reports, or just hang out with friendly and creative people.
Overview
picoCAD 2 has three main modes; modeling, texturing, and animating. Making a model often requires a lot of going back and forth between these modes. Generally it is good to start with modeling, then do the texturing before moving on to animation.
The UI is intentionally sparse in picoCAD 2 and most interaction with the model is made by clicking on the things that are to be modified. Left click to select and move. Right click to show additional/advanced options. In most cases arrow keys or WASD can also be used to finetune selections.
Getting stuck? There is help to get. Check out this 5 minute primer on picoCAD 2 basics!
Also check out the Tips & Tricks and Troubleshooting sections. Or ask the friendly community on Discord.
Modeling
The modeling mode has four viewports, each showing the model from a different perspective. When editing a model, use the different viewports to make the required changes. To control the camera, use the mouse or arrow keys in each viewport. Zoom with the mouse wheel. SPACE will bring a viewport into fullscreen.
The top right viewport shows the model in 3D. Use buttons in the viewport to control how to display the model.
Adding mesh primitives
To add a primitive to the scene, either use the [+] button, or right-click empty and space, and select the mesh to be added. If using right-click, the mesh will face the camera in the viewport where it was added.
Modify vertices and meshes
Click vertices to select them and drag them to change their position and as a result the shape of the mesh. To select multiple vertices, either hold down shift and select them one by one, or use the mouse to mark a rectangle around the vertices to be selected. If retangle select is used, it will select all vertices within the rectangle, not only to top most.
| Action | How |
|---|---|
| Select vertices | Left mouse button, drag selection box, or hold SHIFT. To rectangle select in the 3d viewport, hold CTRL before dragging. |
| Move vertices | Left mouse button + drag, arrow keys, or WASD. |
| Nudge vertices | CTRL + arrow keys / WASD. |
| Merge vertices | Right click selected vertices and select merge. |
| Snap to world-grid | Right click selected vertices and select snap to grid. |
| Delete vertices | Right click selected vertices and select delete. |
| Toggle snap | Hold CTRL while dragging. |
To move a mesh, grab it with the mouse and drag it.
Each mesh has a center point used when rotating or scaling. To move this center point, start dragging the mesh and then hold SHIFT to move the center point instead.
| Action | How |
|---|---|
| Move mesh | Left mouse button + drag. |
| Move mesh center point | Left mouse button + drag, then hold SHIFT. |
| Rotate mesh | Hold R, then left mouse button + drag. |
| Scale mesh | Hold T, then left mouse button + drag. |
| Toggle snap | Hold CTRL while dragging. |
Face & Mesh Control
Each face on a mesh has different properties. These can be controlled both per face and for the entire mesh. Right click a face and select the corresponding property to change it.
| Property | Effect |
|---|---|
| color | Color to draw the face when non-textured. |
| double sided | Whether the face is visible from both sides. |
| shaded | Whether to shade the face when lit. |
| textured | Whether to texture the face. |
| draw behind | Draws the face before everything else. |
The right-click menu also allows for a number of modification of the selected face or mesh.
| Modification | Effect |
|---|---|
| Extrude face | Extrudes the face straight along its normal, adding new faces where needed. |
| Delete face | Deletes the face from the mesh. If the mesh has no faces left it will be deleted from the scene. |
| Mirror mesh | Mirrors the mesh along the selected axis. |
| Clone mesh | Clones the mesh and adds the clone to the scene with a small offset. |
| Delete mesh | Deletes the mesh from the scene. |
Traditional copy/paste/cut controls also work for meshes for quick duplication.
Project Overview
Pressing O, or clicking the list button in the lower left of the program will bring up the project overview.
With a lot of meshes the project can be difficult to manage. Use the overview to:
- lock meshes to prevent editing
- hide meshes from view
- organize meshes into folders
- rename meshes and folders (double click)
- merge folders into a single mesh (right click)
- duplicate meshes/folders (right click)
Shortcuts
Using keboard shortcuts will eventually speed up the workflow considerably.
| Action | Shortcut |
|---|---|
| Extrude face | E, when hovering over a face. |
| Delete face | X, when hovering over a face. |
| Delete mesh | CTRL/CMD + X, when hovering over a mesh. |
| Copy/paste mesh | CTRL/CMD + C/V, when hovering over a mesh. |
| Delete vertices | DEL/BACKSPACE. |
| Face properties | F, when hovering over a face. |
| Mesh properties | G, when hovering over a face. |
| Project overview | O |
| Toggle snap | Hold CTRL when dragging. |
| Fullscreen viewport | SPACE on selected viewport. |
| Undo/Redo | CTRL/CMD + Z/Y |
| Cycle render mode | M |
| Toggle shading | L |
Texturing
Use the texturing mode to map face UV coordinates to the texture, as well as draw the texture itself. Textures in picoCAD are limited to a resolution of 128x128 pixels and 16 colors. Either import a png via the menu or drag and drop it on the program. If the image has more than 16 colors, the colors will be reduced using best effort methods. In addition to this, one of the 16 colors will be treated as transparent - manage colors properly!
UV Mapping
Select a face to modify. Select multiple faces by holding down SHIFT. Once selected their UV mapping will be highlighted on the texture. Select UVs with mouse or rectangle select and then move them on the texture. Changes will be displayed on the model in real time.
Sometimes the default UV mapping can end up rotated or flipped. To remedy this, right click the UV map and select either rotate or flip. Hover over a face or UV map and press R to rotate the UVs or H to flip them.
Make sure the UV tool (pointer) is selected when modifying UVs.
| Action | How |
|---|---|
| Select face(s) | Left mouse click, hold SHIFT for multiple. |
| Move UVs | Left mouse button + drag, arrow keys, or WASD. |
| Rotate UVs | R, when hovering over a face or UV map. |
| Flip UVs | H, when hovering over a face or UV map. |
| Scale UVs | T, then left mouse button + drag. |
| Copy UV msp | CMD/CTRL + C, when hovering over a face. |
| Paste UV msp | CMD/CTRL + V, when hovering over a face. |
| Toggle snap | Hold CTRL while dragging. |
Drawing
Draw directly on the texture with traditional pixel art tools and see the result on the model in real time.
A good idea for beginners is to stick to the grid when making textures. It makes it a lot easier to handle.
Use the tools on the left to draw the texture and the palette on the right to select colors. If secondary colors are activated in settings, use left mouse button on the palette for primary color and right mouse button for secondary color.
| Icon | Tool | Shortcut | Usage |
|---|---|---|---|
![]() | UV tool | V | Adjust selected UV maps. |
![]() | Pen | B | Freehand drawing. Hold SHIFT for locked axis drawing, and straight lines between clicks. |
![]() | Eye dropper | I | Selects color to use. |
![]() | Fill bucket | G | Flood fills an area. |
![]() | Line | Draws a line between two points. | |
![]() | Rectangle | Draws a rectangle. Click again to toggle to filled rectangle. | |
![]() | Circle | Draws a circle. Click again to toggle to filled circle. | |
![]() | Marquee select | Mark an area to be moved or copied/pasted. |
Toggle the grid on and off with the grid button (bottom left), and zoom in and out (bottom right). Zooming is also possible via the mouse wheel.
Additional shortcuts
| Action | Shortcut |
|---|---|
| Palette | P |
| Preset zoom levels | 1, 2, 3, 4 |
| Pick color | Hold CTRL and click color. |
| Pan texture | Hold SPACE + drag mouse, or middle mouse button + drag. |
Palette and shading
picoCAD 2 allows only 16 colors on the texture, and one of those will be treated as transparent. Use the palette (press P) to set up colors as well to describe how each color changes when shaded.
The top half of the palette controls is used to select and edit specific colors in the palette. Select a color, and then edit it using the tools available. Click the bg and alpha buttons to select which colors to use as background and transparent respectively.
Use regular copy/paste controls to copy and paste colors.
| Icon | Usage |
|---|---|
![]() | Swaps the position of two colors in the palette. Select the second color by holding SHIFT and click. |
![]() | Creates a gradient between two colors in the palette. Select the second color by holding SHIFT and click. |
![]() | Select between a number or predefiened palettes. |
![]() | Let the picoCAD 2 robot set up the shading ramps. Results my vary. |
The lower half is used to manage picoCAD's unique shading aesthetic. To control how a color is shaded, simply drag the color it should be shaded into to the ramp below it. Holding the mouse over each color will display the selected colors on the preview cube below. For a quick start, use the robot button (bottom left) to estimate shading. If the palette gets messed up, use the reset button to get the standard palette and shading ramps.
Animating
Animations in picoCAD 2 work on a single timeline. Each mesh has four tracks, and each track can have a number of clips attached to it. Each clip modifies a property of the mesh, like position, rotation, or scale. As each mesh is animated separately, it may be neccesary to merge groups of meshes into a single one for a smoother workflow.
When applying rotating clips, the center point of each mesh will be used. The center point often moves around while modeling, so it might have to be re-adjusted before animating. In modeling mode, drag a mesh and then hold SHIFT to move the center point to where it needs to be.
General workflow
- Select a mesh in the model.
- Drag a clip from the clip library to a track on the mesh's timeline.
- Edit the properties of the clip.
- Scrub the timeline using the mouse, or play the animation (play button or SPACE), to view the result.
- Repeat until satisfied.
Animation clip types
All animations are relative to the mesh's current transform.
Clips are color coded depening on which property they affect, as well as showing an icon.
Once placed, clips can be freely moved around on the timeline with the mouse. Clip duration can also be changed by dragging the side handles.
| Clip | Type | Animation |
|---|---|---|
![]() | Movement | Moves the mesh along the desired axis. |
![]() | Rotation | Rotates the mesh around the desired axis. |
![]() | Scale | Scales the mesh along the desired axis. |
![]() | Visibility | Hides the mesh. |
![]() | Oscillation | Modifies the clips main property back and forth in a sinewave pattern. |
Animation clip properties
| Property | Effect |
|---|---|
| Distance/Rotation/Scale | How much to change the selected property. |
| Curve | Easing curve to apply to the change. |
| Ping pong | Set to make the animation return to start. |
| Frequency (oscillation only) | How often to perform the change. |
Use copy/paste (CMD/CTRL + C/V) to duplicate clips across meshes.
To change timeline length, double-click the timer at the end of the timeline.
Hold CTRL to disable snapping.
Exporting
GIF export
GIFs are a great ways to share picoCAD 2 models. Whether on social media or elsewhere.
Use the controls to apply the desired effects and outcomes. Use the mouse to control the camera and decide starting position and angle of the model.
| Panel | Control | Effect |
|---|---|---|
| Camera | Camera | Set camera animation and direction. |
| Animate | If set, any available animation will play. This will override the duration setting and use animation length instead. | |
| Duration | How long the GIF should run. | |
| Effects | Outline | Size and color of applied outline, if any. |
| Scanlines | Color of applied scanlines, if set. | |
| FOV | Select lens distortion. | |
| Text | Left tag | What to display bottom left, and color. |
| Right tag | What to display bottom right, and color. | |
| Dimensions | Size | Base dimensions of exported GIF, and scale factor. |
When happy with the preview, click the render button and picoCAD 2 will spend some time to render the GIF frames. Once done the output folder will open automatically.
Sprite sheet export
Render a large amount of images of the model, during a full rotation. Great option for getting a 2D versions of models into 2D games.
The view will update in real time, showing how the final sprite sheet will look. Use the mouse to drag the sheet around if it is bigger than the screen.
| Control | Effect |
|---|---|
| Distance | Camera distance to model. |
| Tilt | Camera angle to model. |
| Height | Where on the model the camera looks. Use to shift the rendered model up and down. |
| Ortho | Forces orthographic projection. |
| Frames | Amount of frames to render. |
| Size(px) | Width and height of each frame in pixels. |
When happy with the result, hit the export button and it will be saved to disk. The output folder will open automatically.
GLTF and OBJ/MTL export
Use these to export to the import friendly formats GLTF or OBJ/MTL which can be imported in to any modern game engine or 3D program.
When clicked, three files will be produced.
for GLTF
modelname.gltf, metadata
modelname.bin, geometrical data
modelname.png, texture data
for OBJ
modelname.obj, geometrical data
modelname.mtl, material information
modelname.png, texture data
Depending on the setup, some or all files maybe required during import. See documentation of the importing program on how to do this best.
Texture export
This will simply output a png of the current texture.
Settings
Settings are available via the main menu and offer tweaks to the experience.
| Setting | Effect |
|---|---|
| Snap to grid | Decides if snapping is on by default or not. Can be toggled by holding CTRL at any time. |
| Texture grid size | Sets the grid size for the help grid on the texture. |
| RMB action | Decide how to use the right mouse button in texture mode pan texture - move the texture on screen secondary color - draw with secondary color pick color - pick a color from texture to use. |
| Auto backup | How often (or not) to save backups. Click the folder icon to open backups location. |
| Increment GIFs | If set, gif exports will add a number to exported files if already existin. Eg file_42.gif. |
| OS cursor | Use picoCAD 2 pixelized cursors, or OS cursor. |
| Invert zoom | If set, inverts zoom direction for mouse wheel actions. |
| UI theme | Select picoCAD 2's look and feel. |
If for some reason settings need to be reset, hold R during the boot sequence.
Tips & Tricks
- Plan ahead! A little thinking about which primitive meshes that will be used will make it a lot easier.
- Everyone's workflow is different. Don't be afraid to experiment. Making art should be fun.
- Try to keep textures and faces at roughly the same size/ratio.
- Texture space can run out quickly, only draw half of symmetrical graphics and reuse rotated or flipped.
- If a model has a lot of meshes that look the same, complete the texturing before duplicating them and it only needs to be done once.
- Use the camera bookmark frequently to get to the desired viewpoint of the model.
- Copy and pasting uv coordinates makes reusing textures super fast.
- Check out the examples in the examples folder. The additional_meshes file has some useful models. Thanks to Speak the Sky for providing
- You can have multiple copies of picoCAD 2 open at the same time and copy data (meshes, uvs, etc) between them. If Steam wont allow it, just open picoCAD 2 via the file explorer instead.
- Learn the shortcuts for the most common actions.
- Backups are made automatically and frequently so check the backup folder if you messed up.
- Join the discord!
Troubleshooting
| Problem | Solution |
|---|---|
| I can't find my files | picoCAD 2 saves all files under your user account. Windows: %AppData%/Roaming/picoCAD2/ OSX: ~/Library/Application Support/picoCAD2/ For quick access, click the folder button in the file selector. |
| Unable to center camera properly | Hold SHIFT and press the camera bookmark in the 3D viewport to reset the camera. |
| Texture warp when close to camera | picoCAD uses affine transformation for texture mapping (similar to PS1). This causes some artifacts then faces are in perspective and take up a large part of the screen. To avoid this, break down faces into smaller faces. |
| picoCAD 2 doesn't behave like it should | Try resetting settings by holding R during the boot up sequence. |
| Exports are not saved to disk | picoCAD 2 is unable to handle non-standard characters in file paths. If picoCAD 2 install path contains for instance chinese letters, exporting wont work. If this is the case, it is often the account name that has special characters. To fix this, install picoCAD 2 using a user account with regular letters only. |
Last Words
When I released the first version of picoCAD (made in PICO-8) I thought that at best it would be a curiosity that a handfull of people would be interested in. Tens of thousands of download later I'm both delighted and humbled by how was recieved and it is clear that it fills a gap between traditional pixel art applications and fully featured 3D modelers.
Thank you so much for all the encouragement and cheering on along the way to make picoCAD 2. Special thanks to the community on my discord that not only have been invaluable in testing and providing feedback, but also has kept my motivation up and my sanity intact by creating cool art with the program.
Where the original picoCAD was firmly set in the limitations and restrictions of PICO-8, picoCAD 2 has all the possibilities to keep growing and being updated for a long time. Let me know your thoughts!
❤️ Johan
















