3D-Coat development process

I am Andrew Shpagin, the developer of 3D-Coat. This is my personal blog devoted to the development of 3D-Coat. This blog is created to give fast and non-official information about 3D-Coat. I will post there daily news, what I am doing now, what features are under development this moment. It could be really interesting for everyone who is interested in 3D-Coat.

Monday, October 27, 2008

Volumetric sculpting progress

Some news on volumetric progress. Many improvements was made since previous post in this blog. One of the most improvements is incremental render. It allows render only changed parts of object. In so way there is almost no difference how big object is edited - only navigation speed is different. Now it is possible to create objects up to 18M of triangles. Also voxel sculpting has got nice renderer - with DOF, AO and soft shadows. There are some rendered samples with AO and soft shadows:

Images made by TOXE:


Aloso there are so much great images! I will post some of them (there are very many images in forum)

by Deadman21:


by tree321 (realtime render):

by renderdemon (18.5M triangles):

by Juan Carlos Montes:

by Jokermax:

by Monsoon:

  and many more...


And big thanks to Akira for providing many cool shaders!

Friday, September 26, 2008

More images

There was hot discussion last night in forum. I see true interest :) Many interesting images made with voxel sculpting was posted there. Also, ALPHA 14 is done for mac, yo can find link in forum, 2.10.10 update is done. It fixes some important bugs. If you downloaded 2.10.09 you should replace it with 2.10.10:





Visit forum! There is interesting action!

And some gallery from last night:

By tree321:

By Juan Carlos Montes:

By 3dioot:

By 3DArtist:

By Deadman21:

Thursday, September 25, 2008

Friday, September 19, 2008

Voxel scolpting - take part in development!

Excuse for long delay in posting there, it was hot time. Many sales, many support questions, many work over volumetric sculpting. Really multithread working :) But all is going very well. It seems 3D-Coat becomes popular cake :) Please join very hot discussion in forum about first alpha and principles of volumetric sculpting. You have a chance to make this tool better and perfect. The thread is there:


Thursday, August 28, 2008

2,10 and further perspective

2.10 released. It was hardest piece of work. MacOS, new render engine, OpenGL support, retopology tool. There are many interesting discussions across the web about 3D-Coat.

3D coat 2.10 released.

3D-Coat R 2.10 - Mac version!

3D-Coat 2.10 released !

I have met really incredible interest. I am getting many letters and sales everyday. It seems that 3D-Coat is tooken seriously into account as serious competitor. It is great. Especially many peoples like retopology tool and upcoming volumetric sculpting. I have already made core for this but I need some time to bring it to some usability level.Anyway I will show very basic demo soon. From the example of developing retopology tool I see that open development is best way to make something really exciting. I need to spend several more days on making sevice updates and then I will run into 3.0 development with full power. Now I am spending only 20% of time for it.

Monday, August 18, 2008

2.10 development runs to the end. It will be the biggest update.Also version for MacOS (Intel)is almost done. You can find the link to latest MacOS version there:


I want to tell great thanks to all who participated in beta testing. It was huge piece of work.
Also, free addon with textures and mask was recently released. You can find it there:


Monday, July 7, 2008

3D-Coat 2.10 Beta1 and 2

3D-Coat 2.10 BETA1 and 2 are widely discussed in forum. The main new feature is retopo tool in 3D-Coat. It is really big piece of work and now it is close to final. Also Mac version is close to first beta version. There is some roadmap:

Beta 1 discussion (maybe biggest discussion at all)

Beta 2 discussion:

MacOS announcements and news:

I have told that first MacOS beta will be released 9 of july, but I am not sure that it will be ready until this date, it is possible that it will be postponed on a week.

Also, development 0f 3.0 will be started after releasing 2.10. I plan to release 3.0 approximately in september. The major feature is volumetric sculpting. It you have questions or proposals, please post it there:

Thursday, June 12, 2008

2.092+French translation

2.09(2) with french translation released!
I thank to Frenchy Pilou for really huge work! It was the first success of using online translation system.
Welcome to downloads!

Also, several bugfixes and instability issues was fixed there. Thank to all who have sent bugreports!

Monday, June 9, 2008

Retopo tool progress

Retopo tool is done on 60%


- adding polygones on surface
- deleting edges/edgr loops between polygones
- tweaking(moving) verts, edges, faces, edge loops &rings
- splitting edge rings
- erasing faces
- adding quads strips (like in Silo)
- connecting vertices on polygon

Should be done:

- splitting single faces/edges
- symmetry
- mesh projection on new surface
- sliding vertices
- move/relax with pen

I think that most complex part was done.

The discussion is there.

Tuesday, June 3, 2008

New render engine, handlers, retopo

3D-Coat is transferred on new graphic engine.This cross platform engine was done by my friend Sergey Krizhanovsky. It is very important step to make 3DC cross plaform. I hope it will be released for macOS in a month and for Linux in two months. Other benefit of new engine - easy making diggerent handlers. I have inserted them into sculpt tool, it works very cool now! Look at screenshots:

Also you will me able to move/rotate/scale the whole closed poly areas using handlers. Sculpt tool was improved much, now symmetry worksmuch better in select and move mode. It allows you to pose object better.

I have started retopo tool. I think it is important not only because of retopo tool itself but also like improvement to sculpt mode - you will get possibility to sculpt something essential from sphere using pair sculpt/retopo. Another application - making clothes.

Thursday, May 29, 2008

Development progress

Last week I was working over making 3D-Coat cross-platform. My friend Sergey Krizhanovsky has made cross platfirm engine and last week I was busy by replacing old graphical engine with new one. It was very hard work, only 5 days was spent to compile and link program with new engine. New engine will give improved speed, OpenGL/DirectX render, very nice handlerd like in Maya. I hope to finish my part of work this week. Then Sergey should make some final changes in 3D-Coat to make it cross platorm. It is possible that Mac version will be done until the end of june (official deadline - 9 of july). So, from next week I will continue to improve functionality. At first, I plan to make retopo tool. Also, I can't wait to start volumetric tools. I was impressed by recent post of Frankie It seems to be more impressive then hard to do feature. You can read interesting thread there.

Monday, May 26, 2008

Do you want to see 3D-Coat on your native language?

Recently I have written about web project that makes possible online translation of 3D-Coat hints on native languages. It is done! So, if you want to see 3D-Coat on your language, please visit the page


It requires login/password from forum. If you want to see more languages, please write me directly. Also, you can ask questions in our forum


Thank you for participation!

Saturday, May 17, 2008

MacOS porting progress

3D-Coat 2.09 is done, now next step - combine 3DC with new graphical engine (that is partially used now). With this engine 3DC will support OpenGL/DirectX render and will be cross-platform. It will be big step to make 3DC compartible with MacOS. I hope we will make all in term that I have told in our forum.

Friday, May 16, 2008

3D-Coat 2.09!

3D-Coat 2.09 released! More info is placed there:


3D-Coat SDK

I have published 3D-Coat SDK. It allows to create plugins for export/import of different 3D-files. To start you should download and unpack


Then you shoud open soluton ExportImport.sln. It requires at least MS VisualStudio 2008 Standart Edition to be properly compiled. Compile project. It is better to use “Release” configuration. You will get Odj.DLL file on output. This simple plugin is a sample for importing OBJ files. Obj.DLL should be copied to


To understand how plugins work open files cMeshObj.h. You will see there class that is derived from cMeshCodec (It is defined in cIO.h).

class cMeshCodec {


cMeshCodec() {}

       virtual ~cMeshCodec() {}

       virtual cRawMesh * Decode(const cData &Fm) = 0;

       virtual void Encode(const cRawMesh &Mesh, cData *To) = 0;

       virtual bool CanEncode(){return true;}

       virtual bool CanDecode(){return true;}


To create new codec you should derive your class from cMeshCodec and re-define functions Encode and Decode. Decode should return filled object cRawMesh and Encode should fill Data structure cData using cRawMesh. You can look and discover objects cData and cRawMesh. After redefining functions you should change class name in ExportImport.cpp. I think it is very easy. The only not so easy task is filling/reading structure cRawMesh. It is mesh that consists of:

uv-sets (see GetUVSets() )

Matrials(surfaces) (see GetMaterials() )

Objects (see GetObjects() )

PositionVertices (see GetPositions() )

UV-vertices (see GetTexCoords() )

Normals (see GetNormals() )

Faces (see GetRaw() )

To understand how it works it is better to discover how cMeshObj.cpp encodes/decodes obj – files. I will explain slightly how Faces list is organised.

Faces are array of cVec3i – 3 integer values

Count, - amount of polygones in face

idMtl = MaterialIndex + (UV-set index<<16) – index of material and uv-set

idObj - index of object

Next “Count” values are 3-indices of vertices that are part of face

PositionIndex (index in array of position vertices)

TexturevertexIndex (index in array of texture vertices, can be -1)

NormalIndex (index in array of normals, can be -1)

The best method to learn is to ask in forum and discover how cMeshObj is done.

Thursday, May 8, 2008

Translating to many languages

I have interesting idea about translating 3D-Coat to very many languages. I know that many peoples want to help to translate 3DC to native language but it seems too difficult because

1) Too many texts for one man

2) It is not so easy to find where texts are stored

2) There is some xml-file - it is not convenuent to translate

Also, using translation agencies is not effective because they usually don't know CG terminology well.

So we started new web project - you will be able to help to translate even if you have 5 free minutes! There will be web page where you can get string that is not still translated and translate it on native language. There will be small screenshot where this string is used and text. You will be able to type the translated text.

Vector displacement

Now I am making support of export/import of vector displacement. What is vector displacement? You have subdivided mesh and texture for displacement. It is not grey, every channel represents shift in space in corresponding direction (XYZ). Vector displacement is important for sculpting because it allowd to displace sphere into something non-trivial like face. Using vector displacement will make export for render engines much mere easy and precise. There is two types of vector displacement

1) World space vector displacement - RGB in picture mean XYZ shift in space. It is most precise method, but it is not good for animation.

2) Tangent space (local space) displacement - RGB mean shift in TBN - space, N- normal, T,B - directions of U,V gradient. This kind of displacement is good for animation but less precise because tangent space calculation can be made using many methods, it even can be non - orthonormal.

I have almost done this stuff, but I have a problem with method of calculation of tangent space in LW or Modo. If someone knows how to do that in Modo/LW, please send me the info.

You can download and test this feature by the link


I have created the new topic in forum


Please help in testing vector displacement.

Also, if you have examples of EXR files with vector displacement to transform sphere of some other simple surface into something non-trivial, please send me to support. It will be great help.

Saturday, May 3, 2008

2.09 is coming soon!

3D-Coat 2.09 is almost done. There will be many new features. It will be essentially useful for LW users. The approximalte list of upcoming features:

1) Merging new objects is possible now! You can add new sub objects like eyes on your WIP.
2) Different uv-sets are placed on different textures, it allows you to use display memory more efficiently and get better quality.
3) You can choose resolution of every uv-set during import and change it any time. Also, you can change resolution of mesh separately for every uv-set.


4) Now you can group several materials (surfaces) into single uv-set


5) Select and move now supports symmetry.
6) Gradient select in sculpt mode works better with symmetry and works much better now.
7) Image picker has got navigation controls to scale/move/fit image

8) Wacom pen has got better support: opacity jitter is add for pen and every jitter can depend on pressure if you want.


9) All textures (color/normals/specular) and all uv-sets could be viewed in single window
10) New option in fill tool using gradient - filling with opacity fading


11) ... and filling with spherical gradient


12) New menu item - View->Browse to understand the structure of 3DC folders better


13) Move along motion in pen settings now works with symmetry
14) Stability improvements

15) It is possible to tweak uv-set in View texture mode. You can do it using RMB in wireframe mode.
16) Now you can edit not only in 3D, but in UV-plane! It is really complex change. Almost all tools support work in 2D and 3D. Just open View->View color texture and see how it works.
17) You can make seamless plane texturing in uv-plane! 3D-Coat now can be used very easily to tile textures and make relief. Just import plane and come to View->View color texture.
18) Hide/unhide/Fill can be applied to texture island (cluster)
19) Additional view mode for texture in UV - layout: shaded model

20) texture editor/viewer is in different movable/resizable window
21) shift - constrains for horisontal/verlical/diaginal movements of the pen. Click on surface and then press SHIFT
23) grids and snap to grid work in 2D - mode also
24) more correct export of texture with multiple uv-sets
25) new nice preview of pens and smart hints
26) it is possible to edit/export/import pens as 16 bit tiffs with 7 cannels - RGBA, Depth, Specular, Erase mask
27) small icons over materials to indicate what layers is in material (depth/color/specular)
28) 2D/3D grid are now in View menu

29) Smudge/collapse/expand tool in paint mode

I hope it will be most powerful update.

Welcome to beta-testing forum at


Friday, April 4, 2008

Some news.

1) 3D-Coat 2.08 is out. The list of features is there .
2) First newsletters was sent to customers.
3) I am seriously thinking about porting to Mac. It is not easy task, but I am seekeng for solution.
3) Now I am working over merging additional objects into scene (I hope to finist in 3-4 days). It opens a great perspective - adding new geometry in scene. Lofted tubes made with splines, boolean combining. The last thing - not so quick.
4) One of goals - improvement of materials - painting using photo. I want to make possibility to distort image using grid. It will allow to fit image on object very precisely.
5) I like Wink, I have already made several tutorials
www.3d-coat.com/files/Tut1/Interface.htm - Interface basics
www.3d-coat.com/files/Tut2/Curves.htm (30 mb) - Big tutorial about curves
http://www.3d-coat.com/files/Tut3/Ornament.htm - using patterns and curves
http://www.3d-coat.com/files/Tut6/HardCurve.htm - hard edges with curves
http://www.3d-coat.com/files/Tut4/DefineKey.htm - how to define hotkey
http://www.3d-coat.com/files/Tut4/PaintCavity.htm - cavity painting

Wednesday, March 26, 2008

The brief news, for someone it are not news :)

1) 3D - Brush has become 3D - Coat to avoid any problems in trademark registering. Thank to Mikael Strom for new logo! There was soooo long discussion and big battle over new name.
2) new web site is open. (http://www.3d-coat.com/)
3) 2.07 is out. Look the features there.
4) 2.08 is almost done. Visit forum to see the progress.
5) Almost all downloads are now form USA-based server, site is now distributed on 2 servers.

What is in process now?

1) Interface is becoming fully customable. I like idea of Wings 3D where hotkeys for all actions are defined using "Ins". I use "End" for the same purpose because "Ins" is by default bind to fill layer.
2) UV-set could be exported/imported
3) LW compartability improved - now you can use models with multiple uv-sets (but no more then one uv-set per face)
4) One long-playing bug is fixed - spikes on the edge between long and short polygones.
5) Curves have got important improvement - now you can put any picture along spline. You can see it there .
6) I have found the coolest program called Wink to make tutorials (thank to digman). Can't wait to make some flesh/video-tutorials.
7) We paln to spent some money on advertising since 1-st of april, I hope it will help to distribute 3DC. Till now we have spent only 5$ on advertising. Have great idea on advert? Write me.
8) Japanese website and transtlation is coming very soon.
9)2.08 hints will be fully translated in russian.
10) We plan to add some trial period to demo (maybe 6-12 hours of work time). After trial it will work like demo.
11) The price will grow significantly from 1-st of April. It will be 120$. Educational version will be available for 89$ (no commercial usage, layers amount limitation).

Wednesday, February 13, 2008

Recently 2.05 and 2.06was done. There are so m any features in pictures that it is better to give a links to the complete description:
2.05 features
2.06 features

Now I plan to add new import option - smooth uv-set like it is described there:


Also, it may be interesting for you, I plan to add the next set of features in future:

- merging new objects into scene
- retopologisation
- more complete uv-mapping
- memory consumption optimisation, so that every face on layer will contaion only required subset of information (color or geometry)
- procedural layers (text layers, curve layers, parametrical materials layers etc)- make blending options like in PS (with same names)
- plugins system
- more filters (now you have 3 filters - adjust HSV, smooth, sharpen)
- tweaking in low-poly mode
- hairs and fur (maybe in 3.xx version)
- volumetrical sculpting (in 3.xx version) - work wth volume, not surface, so that you will be able to make holes or change topology as you wish.

It is a big piece of work, so please don't wait all this in 2.07 :).

Thursday, January 31, 2008

The kingdom of arrows

I have add the new curve profile - arrow. Also you can mark some points like sharp. How it looks? It is better to see then to read.
Coming soon in 2.05!

Tuesday, January 29, 2008

Masks and layers masking

I thank to everyone who takes part in testing betas, it helps me much to develop 3DB quickly. So, the new version 2.05 BETA21 is done. The list of improvements:

1)Masks are implemented - I think it is very convenient improvement. If someone have good masks that could be used without license limitations, please send it to me.
2) Layers masking (linking) is implemented. You can undestand what is it by pictures below
3) Additional parameters "U/V offset" in custom material.
The link is below:

Sunday, January 27, 2008

Adaptive subdivision

Recently I have done 2.05 beta 1. The main feature of the version is auto-subdivision of geometry on comples parts of surface to acieve better displecement. To understad it better I will tell first how 3D-Brush renders the model. The main idea of 3d-brush is that high poly geometry (2-8 millions of polygones) is used to get normalmap, but actually for render less polygonal geometry is used. So there are actual mesh and carcass mesh (20-80 K of polygons). Now you can control the resolution of carcass mesh and of high hpoly mesh. I have made many optimisation and now catrass mesh can be up to 1 million of polygons. But usually you don't need so much polygons for carcass because now 3DB performs additional subdivision on curved faces. But it even makes something better then usual subdivision. You know that during subdivision you should add one point to tyhe center of the face and one point to every edge. In usual sceme every point will be add in the middle of the face/edge. But in my sceme points on face and edges will be inserted in the most displaced positions. It allows to get much better displaced geometry. I can illustrate it ising screenshots:

1) Usual stroke over plane. You can see disortions on the sharp edge.

2) The same stroke with adaptive geometry:

3) The same without wireframe:

Friday, January 4, 2008

Texture baking tutorial

I want to tell several words why baking tool is so important. Baking tool is especially important if you want to get a texture for low-poly mesh as a result. Let us take for example sphere and draw the strip over it like it is shown below:
Then we should go to sculpt tool and distort it slightly using drag tool:

Then we should enter into low-poly mode. What will you see?

It is because you have distorted geometry, but texture is not distorted, so mesh looks improperly in low-poly mode. In thins case baking tool can help you. You should project new high-poly distorted mesh onto low-poly mesh. In this way you will get distorted textures. Please compare the result of usual export of normalmap texture with result of baking tool:

Simple export result:

Baking tool result:
The differene is obvious - you have got the correct normal map using baking tool. The options for taking that normalmap are below:

[x] Use current low-poly mesh...
[ ] Use original positions ...
[ ] Smooth mesh

The options should be other if you need displacement:

[x] Use current low poly mesh
[ ] Use original positions...
[x] Smooth mesh
[x] Preserve positions ...

But the result will be better if you don't need displacement and need only normalmap. It is because of getting displacement is not trivial operation and mesh should be smoothed before. It is required because the displacement is difference between mesh and smoothed surface. I think that simple example shows you why baking tool is so important.