(back to main page)

These plugins were written by me to extend areas in Cinema 4D where i felt the need for extra functionality in by creative endeavors. Their scope comprises the field of shading and modeling. They are intended to be minimalistic, efficient and hopefully useful. And they are shared free of charge.

Disclaimer: This is free software. Redistribution without my permission is prohibited. Use at your own risk. I'm not responsible for any damage done.

Installation: Extract the contents of the zip file into the plugins directory. It exists in two possible locations. One directly in the C4d installation directory. The other one is in the user data directory as shown in C4d's preferences dialog. Either can be used.

Michael Welter

All in one packages

13 - 16 plugins_dist_2015-09-18.zip 32/64 Bit x86_64, i386
13 - 16 plugins_dist_2014-11-02.zip 32/64 Bit x86_64, i386
12.0 plugins_dist_2011-01-26_R120.zip 32/64 Bit x86, 32/64 Bit
11.5 plugins_dist_2011-02-20_R115.zip 32/64 Bit x86, 32/64 Bit
11.0 plugins_dist_2011-02-20_R110.zip 32/64 Bit x86, 32/64 Bit
10.0 plugins_dist_2010-10-13_R098.zip 32/64 Bit PPC/x86, 32 Bit
9.6 plugins_old_R9_120110.zip 32 Bit PPC (/x86), 32 Bit


UVtoObjectGenerates polygon objects from uv maps. Use polygon modeling tools on UVs!
CopyPastePolysProvides Copy/Paste capability for polygons
Point Collapse ToolTool plugin to merge two mesh point together
TransformTransform tool inspired by Photoshop

Duplicate ObjectMinimalistic generator to make multiple copies of objects
Noise DeformerDeforms objects based on noise functions
SplineConnectorGenerator which gathers child splines into a single one
SplineNoiseDeformerDeforms splines in perpendicular direction based on noises
UV DeformerPlace objects on surfaces via uv maps
SmoothPowerful mesh smoothing plugin. Comes as deformer and dialog based

Atmosphere ShaderPhysical atmosphere material for orbital views
Cellular ShaderRenders cellular noise functions
Extended StarfieldVery customizable 2d starfield shader
ThingsOnSurface ShaderRenders randomly distributed brush stamps
Time ShiftChanges the time value for the evaluation of shaders
Simple ColormapPost effect color mapping plugin



Creates a polygon object representation of the UV map of another object and synchronizes edits automatically, enabling you to edit UV maps with polygon modelling tools. This can be a big advantage for instance when an atlas for multiple objects must be made or when precision work with snapping is required.

Link to UVtoObject pictured guide

Quick Guide

Select a couple of objects. Call the UV to Object command. Now you should have a new group of objects. Each of the children represents the UVs of the respective original object. The meshes are automatically synchronized with the UVs of the original object. This works both ways. You can edit the UVs and the changes will be reflected on the object representation. Likewise you can edit the objects and the changes will be reflected in the original UVs. You are allowed to (dis)connect polygons, and move points around. But the number of polygons must remain the same as in the original. If case of a mismatch, the automatic transfer to the original UV-tag is stopped and a warning is printed in the UVtoObject Tag Gui.

In the UVtoObject Dialog: Width and height determine the size in world space. Match their aspect ratio with your texture for non-distorted display! "Equalize Islands" resizes islands to have all the identical uv-area to polygon-area ratio. Furthermore there are options to create a camera that is useful for making a rendering of the UVs. The cell shading post effect is great for that! Then there is the option to create a background plane to put your texture on.

Fun stuff: you can multiselect objects and create atlases easily. Basically that is the whole point of this plugin, beside the having the better usability of the normal polygon modeling tools of course.

This plugin provides copy/paste commands for polygons. You can copy polys from one object and paste them into others. It preserves Selection Tags, UVW Coordinates, HN Weighting, and VertexMaps, in the sense that data from these tags is pasted into matching tags Tags of the same type with the same name.
Point Collapse Tool
With this tool you can quickly melt two points together. The recent version (as of 10/02/2014) also merges corresponding UV points. screenshot
transformtool panel1 This is a tool plugin inspired by the transform tool in Photoshop for example. It has the special ability to change the size parameters of the basic primitive objects and scale these objects non-uniformly. It displays a cage with handles which can be dragged to move, scale, rotate and shear the selection. It also displays four icons which can be clicked to switch between modes. Snapping is supported, meaning the handles snap accordingly.
  • Note: Beside polygon objects of course, it really can only scale primitives like Cube, Sphere, Cylinder, etc. In some cases the object cannot be fit to the cage. For example when using a rotated object or a object with only one degree of freedom like a sphere. It will still try to do something reasonable.
  • Shearing only works with polygon objects.
  • Spline tangents are not touched. I will fix this some day.
  • You can switch between move, scale, rotate, shear with ALT+1-4. This is hardcoded at the moment.
  • Hold Shift for quantization.

transformtool panel2
Duplicate Object

This is a minimalistic "duplicate" generator. It moves cloned objects along a fixed vector, and/or rotates them around it's own y-axis. That's all :)

Noise Deformer
A simple noise deformation modifier. screen1 screen2
panel The SplineConnector is a generator object that connects many spline object to a single object. This is useful for using many splines in one sweep object.
  • Input: SplineObjects
    SplineConnector generates a new spline from the base points of the input splines according to the type setting ( and the rest of the parameters )
  • Input: LineObjects
    SplineConnector combines the LineObject approximations of the input splines to a single LineObject.
panel The SplineNoiseDeformer is made for deforming splines by the usual noise functions. A spline is deformed to a helix shape by moving points perpendicular to tangential direction. The strength of deformations is determined by the noise function.
  • Strength: deformation amplitude
  • Helix Frequency: rotary frequency of the helix
  • Strength Spline: modulates the deformation along the spline additionally to the noise function
UV Deformer

This is a generator object actually. It can map objects from an area which represents uv space to the surface of the respective object.

The object used to define the mapping must a UVW Map. There are no other restrictions. It works with primitives, uv mapped polygon objects, subdivision surfaces, deformed objects, animated objects or any generator objects which generates geometry with UVW Tags attached. To use a object it can either be put as first child under the UV Deformer or referred to by a link.

The mapping of the input objects can be done point by point or by translation/rotation/scaling of the whole object. The output consists of polygonized objects or clones respectively. Splines also work, in which case line objects are generated.

There are various options to control the details of the mapping procedure. There is no description of these. Example scenes are available though.

Known issues: C4d R11 seems to have broken the handling of generator objects as map. Often they won't be recognized and the UV Deformer will do nothing. Turning the generator check mark off/on makes it work temporarily.


This was a little mesh smoothing plugin. There is now a deformer version available in addition to the dialog. Just put the deformer under a polygon object to make it smooth. It supports restriction and weighting by vertex maps and it also supports the falloffs that were introduced with Mograph. It can be quite useful for CA to reduce unwanted deformation artifacts from bones.

The dialog version is still there. This one supports now smoothing of vertex maps. If one is selected it should be smoothed instead of the polygon mesh.

Most options have changed in contrast to 1.0. There is an amount parameter which controls the total strength of smoothing. The algorithms uses implicit time(=smoothing strength) integration. The number of time steps can be adjusted. 1 is most often good enough, but if you need extremely strong smoothing you might need more iterations. The Squared Operator option makes smooth transitions to non-smoothened areas (can sometimes produced odd results though). The different operator types select various approximations to the continuous Laplace operator. Pick one that works best.

As before the algorithm is based on Desbrun, M., "Implicit Fairing of Irregular Meshes using Diffusion and Curvature Flow", Proceedings of SIGGRAPH 99.

Furthermore there is new custom cone-shaped falloff type which is quite versatile but also a bit inconvenient to use.

Atmosphere Shader

This is a plugin material to simulate light scattering in the atmosphere. It is primarily intended for views from space. It can also handle views close to the ground and will produce acceptable sky colors and aerial perspective. But it does this quite inefficiently.

atmosphere ascent test.avi (1MB DivX 6)
Demo Scenes Manual

Credits: Inspired by the work of Bruneton et al. http://www-evasion.imag.fr/people/Eric.Bruneton/. Textures are from http://www.shadedrelief.com/natural3/index.html (modified)

Cellular Shader
panel This shader renders Worley´s Cellular Noise Functions, perfect for Stone Walls, Floors, etc. It is quite customizable with many options for the look of the noise functions, animation, spatial period.
Extended Starfield
starfield parameters

This is a shader plugin to render star field backgrounds for space scenes. It is similar to the build-in star field shader but with a lot of options.

Basic usage: The maximum diameter of the stars is set as pixels in screen space. The distance between the stars is set by the UV-Spacing parameter. That means the distance is measured in UV space. You will need to adjust this spacing when you change your mapping parameters. Furthermore the shader cannot handle arbitrarily large stars. Their diameter may not exceed the spacing in between them. Keep in mind though that the respective parameters are measured in different spaces.

There are channels for auxiliary shaders to determine the spatial density distribution of stars (Density Map), and their brightness distribution (Intensity Map). In addition the brightness can be controlled by probability distribution functions (Intensity PDF/Dark Intensity PDF) which determine the probability that a star has a certain brightness. The Dark Intensity PDF is used when an spatial intensity map is set. The final brightness is interpolated between the values picked from the Intensity/Dark Intensity PDFs. Analogously you can set a probability distribution for the star size. Link Size to Intensity means that bright stars are also large and vice versa.

ThingsOnSurface Shader
panel The ThingsOnSurface Shader places many many small instances of a brush on the texture. A brief description of its parameters follows.
  • Brush:
    Here you put a shader or bitmap which is the "brush" that is distributed over the texture. Alpha channels are passed through.
  • Mask:
    Serves as alpha channel if the brush has none.
  • Brush Format:
    You must set the width/height ratio of the brush manually in this field.
  • BlendMode and Strength:
    Determine how brush instances are blended over each other.
  • Brush Size and Variation:
    Control mean brushes average size and deviation in uv texture space
  • Size Map:
    Controls brush size by a shader or bitmap.
  • Density:
    Density of the brushes on the textures. The shader divides the texture space into a uniform rectangular grid and the density parameter actually determines the mean number of brush instances generated per grid cell. It can also be controlled by a shader or bitmap.
Note that the shader also generates an own alpha channel, so you can easily stack it on top of other shaders in the layers shader for example.

The file for download also contains the scene files to both of these images.
Time Shift

This is a shader plugin to change the time value for the evaluation of another shader. The main purpose of this plugin is to be able to use the same animated texture several times, at different times without having to create a lot of copies of virtually the same material.

timeshift panel

The evaluation time is determined by an offset from the current time and this offset is determined by a user data entry in the respective texture tag. The timeshift shader has the parameter "Data Name" to determine from which user data the offset is taken.

Demo scene: timeshift.zip (timermovie.c4d just generates a movie texture which timeshift.c4d uses).
Simple Colormap
colormap parameters

This is a videopost plugin for color mapping. It works analogous to Cinema 4Ds native color mapping effect but with different parameters. The reason for its development was that the native version is quite unintuitive use in my opinion.

If Boot Low Intensities is off, the mapping is defined as 1-exp(-Exposure*L), where L is the original pixel intensity. If Boost Low Intensities is on, a piece of a gamma correction curve (with gamma=2.2) is used for low intensities. If Use HSV is on, the pixel color is first converted to HSV and the mapping applied to the V component, otherwise the mapping is applied to individual RGB channels. The 0.->, 1.0 -> etc. fields are there to show the result for specific intensity values.