Kendzi3D - 3D Viewer as plugin for JOSM.

As you probably already noticed I develop simple 3d viewer for JOSM.

It can visualize some basic object in 3d for examples buildings, trees, fence, roads. Here are samples of village Nowe Kramsko:

Samples of roof with dormers described in proposal:

Type 0.x

Type 1.0.aaaa

Type 1.1


Type 2.1.aa

Type 2.2.aa

Type 2.3.aa

Type 2.4.aa.aa

Type 2.5.aa.a.a.a

Type 2.6.aa.a

Type 2.7.aa.a.a

Type 2.8

Type 2.9.a.a.a.a



Type 9.0 is not working correctly in all cases. It has few numerical problems so don’t wary.

Type 9.0.a…a…a.a…a

Some other examples:

You can watch examples by opening file (it is quite old):

For ground textures you can use view from JOSM editor. But refreshing after modification in JOSM is not working.

You can download it using JOSM plug in manager. Search for kendzi3d :slight_smile:

great, thanks a lot

Ok, Kendzi, here we go :wink:

It’s a tpyo, you meant building:facade:material, right?
How about building:facade:color and building:roof:color with maybe 16 predefined colors red, black…and if it begins with # then use it as Hex code value?

Thanks a lot…I will keep you updated. The first results look pretty impressive

yes I mean:


I plan to add colors but it take some time.

In current version I added:

  • multi row dormers: 3dr.dormers.front.row1



  • dormers for wall split by dot : 3dr.dormers=aa.aa
  • direction of roof as node tag: 3dr.direction=begin|end

  • empty dormer type: ‘-’
  • places for dormers on rectangular roofs: 3dr.dormers.front, 3dr.dormers.back, 3dr.dormers.left, 3dr.dormers.right

I played a bit with the dormer rows…Looks promising. I have seen that pitched roof dormers were mentioned in some places in the wiki. Do you plan to support it?
I am wondering if the same as you are doing with dormer rows would be possible for windows.

Unfortunately I see only 2.0 roofs when looking around, maybe I will try a more interesting place later

…but I will not upload the building:facade:material=plaster, it is not the reality but good for presentation.

Thanks again for this good work.

For now only dormers type ‘a’ and ‘-’ are supported. I plan to support some more types in near future. I think that we can add roof window (skylight) as new type of dormer?

By plaster material I mean:
Yes I know that texture shouldn’t contain windows. But there isn’t any schema for tagging windows for now.

roof window (skylight) - good idea. Please do it.

Some changes:

  • tree models for type: unknown|broad_leaved|conifer

  • support for dormer type B

  • support for roof type word alias as 3dr:type=flat|gabled|gambrel|half hipped|hipped|pitched|pyramidal|skillion

  • support for building:part=yes

  • initial support for colors. They can’t be mix with tags: building:facade:material, building:roof:material. Hex values or color names from list:

    • building:facade:color
    • building:roof:color

  • example of complex building polygon:

  • support for tags height, min_height for fence

  • support for tag building:color

  • support for tag roof:color

  • support for world alias in tag building:roof:shape=flat|gabled|gambrel|half hipped|hipped|pitched|pyramidal|skillion

  • support for world alias in tag roof:shape=flat|gabled|gambrel|half hipped|hipped|pitched|pyramidal|skillion

  • support for height, min_height, est_height in [m], [ft], [feet] for building

  • support for tag building:roof:orientation=along|across

  • support for tag direction on buildings (the name of tag change)

Several new things:

  • New texture from viw for facade plaster.

  • Forest and tree line:

  • Example of cloning relation (type=clone:height) for building parts, window and fence:

Example file:

Another example:

  • Custom models:
    From now you can use your own models to visualize nodes. Eg mail box or wind turbine:
    Example view:

    Configuration window:

Currently configuration window have not been completed yet and input values are stored only till JOSM is running. More information about configuration in xml file:


It is only example. It is not live. Unfortunately I don’t have time and server to continue it. Titles can be generated by command line program which as input can use xml data and title number.
Currently example titles are generated only for Nowe Kramsko and Warsaw at zooms 17, 18. As background it is used

Source codes are available here:


  • skybox
  • roof type 5.6

action for load texture library
Now you can load texture configuration from xml file. Use menu “3d>Load texture library from file”. Format well be shortly described on page:

Texture configuration can be used to setup single color buildings:

Example library configuration:
You need to load example and answer Yes on question “Overwrite values“.

Cool! Thank You!

That doesn’t quite work for me. Loading the xml file causes an error:

javax.xml.bind.JAXBException: "kendzi.josm.kendzi3d.dto.xsd" doesnt contain ObjectFactory.class or jaxb.index

Happens as well when the plugin tries to load its built-in texture library, hence I only get placeholder textures. I tried the latest versions of Java 7 and 6 under both Windows 7 and Linux with no luck.

Send Kendzi eMail. I´m not sure how often he visit fhis topic.

Currently I don’t have access to my computer, I will investigate it at monday.

Thanks! :slight_smile:

Fixed in v84

Hm, I still have this error in version 88, when I try to load the textures from the wiki:

Any idea?

Best regards

Is there a todo-list or a better place than github issues list? In josm trac there’s so far just one “plugin crashed” ticket for kendzi3d. If there is some better place, I could write each of the things needing attention as a separate ticket somewhere, but I’ll start with some of them here. I know this is still in the early stages and already gives nice results with very few tags only, but communication shall make me tag them frantically…

I’ve been tagging facade colours, building:levels and roof shapes, and I already have identified lots of minor glitches in rendering - and inconsistent documentation on supported tags. Even the presets linked to in the other thread on this forum use roof:orientation=, but the plugin seems to respect building:roof:orientation= only. I would believe some of these “issues” have been discussed in the 3d workshop, but there’s little documentation of the results.

Also; for a long time the osm wiki page listed the shape pitched (and still does), but it’s now “gabled” at least in the plugin; is this an agreement between other osm 3d-stuff developers, that is, from the workshop?

If I model a building with several building:part=yes ways (as horizontal slices), and I also have the building=apartments way, at the moment the JOSM plugin does not recognize this and draws both the building=* way and the building:parts, with them partially covering each other. I also think that the building=* way should have the total number of floors in the building:levels=* tag, to classify the building as having that number of floors. Currently, it just changes how much of the building gets this overlapping walls problem. So will the plugin eventually supress the building=* way automatically, or if it is tagged with building:parts=horizontal?

Where a building has one wall with a different colour, how should it be modelled (as in how it might be eventually supported)? Just an extra way with plain building:facade:color=#fffff? Doesn’t work yet. Another common case I’ve come across is that the longer walls are one colour and the “ends” of a building are of another colour?

Hello Alv,
i would say - lets write tickets together on the separate wiki subpage. I hope we can find helpers for this tool. Let´s comunicate together- if possible in german language.

The specification (roof table) from the wiki page is still incomplete because i have not enough time for finishing the description of all that 3D aspects like texturing+ multitexturing specification, street area in 3d, OSM4D specification for the developers etc.etc.

What I would suggest is the detailed specification of user interface and description of wishful functions for the new version of the Plug In.
What do You think about? Best regards,

It was problem with classloader. It was solved in v88

“Official” todo and issues list is on github, but you can write proposal wherever you like I will try to answer.

Most of agreements from workshop is write here [1] .

On 3d workshop we agree for using roof:orientation (fixed in v100)

We agree to use name gabled but both should work in plugin. But for me pitched roof have only one surface like this [2]

From the meeting. All parts and outlines from single building should be added to relation type=building . This allow to render building outline or building parts if they exist. So one of both will be rendered outlines or parts. But this hasn’t been implemented yet. Read [3] and [4]

We didn’t discuss on this. So it isn’t implemented. But probably in future it will be done by splitting building outline (or part) to single walls and connecting them together using relation.

[1] -
[2] -
[3] -
[4] -

I have solution for walls with different colors and textures but please, wait a few days and I specify this in the wiki.
And Alv - thank You for all sugestions, comments, and angagement. Please help to make it better: Kendzi do really great job, but it is really lot to do. Support is helpful, ideas are helpful.
Best regards,