# Mapmaking Discussion & Philosophy (WIP/Critique) > Software Discussion >  Yet Another Town Generator (3D)

## Crayons

Okay, yes, I know, people are trying this sort of thing all over the place and doing it better I have no doubt! This one is targeted more at making pretty piccies of RPG towns and the like - for gaming - so it's a less "cerebral" about "reality" and more about saving time, I hope?

Introduction
YATG3D is predominantly written in POVRay at the moment. I appreciate that it might be better in something else but "something else" isn't something I can write, so that's my only excuse for that. What I am attempting to do is create a tool which can provide lots of the "vanilla" aspects of a town randomly and leave you to add in the cherries on the top. However, the project involves aspects I am not au fait with and I would really like to collaborate with somebody (or bodies) on this...
It isn't going to "compete" with the art of cartography as evidenced here, but if you're a GM with a world to create and a need for lots of towns in it... well... it could be handy.

What it really needs is a Graphical User Interface, and that's what I'm pestering all you fine people with. I can write stuff but not well and my background is Hardware, not Software, so POVRay is good for me, but Python isn't! 

The GUI wants to do a number of things and I'm not going to fill this thread up with a complete specification, so I've cobbled together a private website* which rambles on a bit more fully about the wretched idea.

I'm very open to criticism and comments about any of this - I think!  :Cool: 

Just to present some idea of what I'm on about here, I attach some renders of "Bendford" which is my "testbench" town at the moment. I've done a range of streets from slums to posh, a castle, a couple of bridges and boats, and a "special" building. I've also "borrowed" a google sketchup building and imported that rather hurriedly (it needs working over a bit).

Other aspects that need thought are "painting the height_field" and how to manage a potential "library" of "things" - because I'd love it if people added their own buildings to the thing, it is, after all, just a vanilla town generator. The "library" need only be povray INC files, but where to put them? I can run it myself from my own webspace but it isn't my first choice...

I'm also interested in checking to see how well I can import other 3D models, I'm happy that Sketchup imports with its image_maps and so forth, and can be modified to work better than the example here, but how about 3ds max and so on? POVray can take in meshes and most things can export them so the possibilities are there... and there are quite a few conversion programs around...

It's not my intent to make money out of this, I'm working on the assumption of a CC BY SA license or something like... so if you're interested in collaborating/assisting, please feel free to contact me here by private message or something?

Anyway, if you have ideas, models, skills, opinions please let me know!

These are some of my latest renders...

An overview


A closer look at the docks


And a maket and some "specal" buildings... the round one is mine, a POVRay object, the rather washed out bleached thing is a Sketchup import of an Inn done by Joel Hoekstra (aka Mr. Hook, Son of Joxer, None the Wiser) from the Google 3D Warehouse - an object he has designed for RPG use so imagine he won't mind ? [That said, if this idea gets more mature I'll probably try to contact him (if he isn't here???)]

OK - that's enough of me rambling on here. The website I cobbled together is here - and more piccies of older renders...

http://www.vgap4-info.org.uk/3DTownGen/

have a peek at the the "Help needed!" dropdown if you're interested?
cheers!

* I say "private website" only in so far as there is a robot.txt file supposedly hiding this area from bots and I haven't put my email address on it and I'd rather people talk to me about it here first?

----------


## Ramah

Wow, this looks really great. Unfortunately I have no experience in any of this so the only aid I can offer is via words of encouragement....

Go go Crayons!

I hope you find the help you need for this as it does look really intriguing with the possibilities.

----------


## allegraissmart

This looks great.

Is it going to be browser-based, or a downloadable program?

----------


## Jaxilon

That is pretty cool. I checked out your website to see what you were up to as well. I know absolutely nothing about POVray and now that I'm thinking about it, I'm not sure how I could help. All I got is my pencils and this mouse I'm starting to hate although I'm getting a lot better at drawing with it.

If I come up with any good ideas or something I'll let you know of course.

----------


## Crayons

Thanks for the encouragement guys!




> This looks great.
> Is it going to be browser-based, or a downloadable program?


It would be a downloadable program - or rather a suite of things depending on what can be written specifically for it.

Basically - it works now, much as I describe on the website but it's really really onerous to manually edit 100 plus coordinates and re-render to see if you got it right.

The process at the moment is...
a) create a height_field - I used Paintshop Pro and the wonderful Wilbur
b) generate a street layout - here I used "RPG Citymap Generator" and PSP and another bit of POVRay code I wrote (badly) to extract all the node coordinates and street links - aaaaand many hours correcting and deleting the results manually... ugh
c) What you end up with is a main POVray file which just calls up macros which are contained in a bunch of library INC include files, which is where all the clever-ish stuff happens.

With a GUI many of the really onerous bits become visual and quick. The program would operate a bit like Moray (another POVRay "front end" program).

So - what would be ideal is a downloadable GUI program. You go get POVray yourself, its free ( runs on Mac, Windoze and Unix - you need to che3ck the website for details?). You can write your own Sketchup buildings and use the plugin to convert to POV (or write new stuff in POV) and make a "mystuff.inc" file which you can share or hide away for your own use.  :Razz:  
It wouldn't be just one program, as such.

All this, of course, means that some mug like me will have to write some tutorials and the like too, I guess. Can do.

----------


## Crayons

Additional:
I've just been thinking about this and it occurs to me that I don't particularly need a completed "finished product" GUI - I need a "start" and an occasional query answered (I think). I can write software, of a sort, as I am (or was) an Electronics Design Engineer using VHDL, not to mention that I wrote my first program in Algol (which probably dates me). However, I would need the program to be in one of the more readable and intuitiive languages like VB or VC, not cost the earth for a workbench (unlike VB or VC I guess) and not totally wierd looking - like Python (as far as I got trying to read a tutorial).... 
If I had the basics of a tool bar, a cursor that could select and move things, a thingy that would let it save the setup in some form (CSV?) and another thingy to  "export"/build a text output file that would be the POVray code - well - I could probably learn the rest and add all the embellishments....

----------


## ravells

Wow, this looks fantastic, Caryons! But like the others, all I can offer is encouragement as I know nothing about POV ray, I'm afraid...

----------


## Crayons

Knowledge of POVray isn't actually needed really, I already have that part of the jigsaw. What I lack is the expertise that can write something in Visual Basic or some othre language that moves a cursor on a screen and when you click somewhere can ultimately put a line of text (which I define) into a file that can be saved... That's a very simplistic "view" of the very basics of a sort of GUI.

----------


## Crayons

Ooookay, well, I've had a little look at Moray, Poseray, GIMP and Inkscape. Inkscape, curiously enough, can export vector shapes and paths into POVRay which had the beginnings of a possible "shortcut" but the in-between mucking about with the export file format would just be too unwholesome for one's health.
That being the case, I have grasped at the snakes behind the head, as it were, and I am researching Python, wxPython and their more cuddly friend, Boa Constructor.... 
Save me!!!! :Feeling sick: 

I don't suppose there's a snake charmer out there?

----------


## Redrobes

I have worked with people who done wxPython. I can write really basic python but I dont like the language myself. I prefer perl and theres a wxPerl as well but thats a pure personal choice. Also a wxWidgets in C/C++. So wx is a good road to take and I would certainly think that wxPython would be a good call. Theres also SDL which is a cross platform GUI library and it has Python, C and Perl bindings as well as a bunch of others. Another is TCL and TK GUI stuff too.

One other option if you have the capability is to write the interface as a web page and get that to collect up some edit boxes, drop downs and radio buttons and then pass it on to a CGI program. We have that here with the members map which I wrote in Perl (link in sig if you havent been there). Web interfaces are pretty simple so if it gets too complicated then your probably better off with a proper app. If it gets any more complicated for a web page then people generally move to flash. Anyway, if you write it as a web page and run the app on a CGI server then you have to have a web server to host it on. If the action is quite quick then you can run it on the guild server but I guess that what your doing is dead slow. You were talking many hours on your challenge entry.

Once you have the GUI done and you want to draw some lines on a bitmap ready for the app you can use many different interfaces to image processing tools. If what I need must be real fast then I sometimes use the open GL perl interface or else use the image magick binding for perl. Both of these have python and C interfaces as well. This site uses image magick for all its attachments as well as the challenge thumb scraper.

Don't know Boa Constructor personally so I'm not capable of being charming   :Very Happy: 

Oh yes should have also added... You can get a free development suites for C/C++ from the Gnu folks or MS or Intel on Linux. Here is a good roundup...
http://www.freebyte.com/programming/cpp/#cppcompilers

of that list, I would look at MS Visual Studio Express which is very complete and the Visual MinGW one using the MinGW make and GCC compiler which is arguably better in some ways but perhaps a touch more tricky. Having a VHDL background tho, you would not find either difficult.

----------


## Crayons

So many languages... I felt I could spend a week analysing which to use but ultimately a friend reckoned Python was worth a shot. 
The job I need the Python code to do is basically very simple, in theory. I need to be able to load a height_field image but not necessarily modify it, just have it as the background. Then I need to be able to plot points, Nodes, in just the x-z plane (y is up). These need to have default automatic "name idents" with the option to assign your own. Then I need to be able to connect such nodes in pairs, and assign some other variables for each connection. Lastly I need to be able to define triplets and other parameters for those. 
The program holds and displays all that data - with possible nice extras like filters and colour coding and so on and ultimately be able to save that data in its own format and also export as pre-defined text strings into a POVRay text file. There's no rendering up to this point, just a few numbers and text strings.

As for the rendering - that's where the second phase comes in and I fire up povray, and run the exported pov file from the Python program.
However, unlike in the Competition, I've been careful to try and keep the render time down. The Nexus took ages on one or two of the renders because of the light beams, which are not needed here. The current textured view of "Bendford" takes about 10 minutes, less if you only want to check layouts using the low detail setting (the yellow and red building versions you can see on the website).

Anyway, it's a challenge, but not enough that I would say "no" to anyone wanting to take it over - in any language!  :Very Happy:

----------


## Redrobes

Well my advice is to go with python and wxPython GUI and the image magick python interface which makes loading/saving an image, plotting lines and points a doddle.

http://www.imagemagick.org/script/index.php
http://www.imagemagick.org/download/python/
http://www.imagemagick.org/Usage/

----------


## Crayons

Now THAT is just what the Doc ordered I think!!! I dunno what my rep stick does but here goes!  Thanks indeed!

----------


## Crayons

An update.
I'm still on the case, as it were, but progress is slow as I learn Python - or try to. I've cobbled together a quickie App that loads a height field into a scrolling window - mostly by cribbing existing programs. I'm also writing up a better Interface Control Doc for the software dialogue boxes and eventual exported POV text commands which in itself is helping me rationalise the way it works - or should work.
I had a session trying to get ImageMagick included within the Python environment and hit a stumbling block in that there doesn't seem to be a Python/IDLE environment installer, just a windows command line bin installer... any clues here would be helpful! In the meantime I'm looking at it from a Pickle angle but I'm not sure if that will support multiple vector line "rubberbanding" when one moves a single Node connected with several lines... ugh. That may have to be "mandraulic".
It's easy to get distracted from this! In the meantime, I'm using Boa to design the dialogue frames and define the main code structure, after that it looks like plain old text editing in IDLE for the "meat" of the code.
Here's a screen shot of my height field view test program just because, really...


Not forgotten, just delayed... :Very Happy:

----------


## Redrobes

I cant help much with how you install or embed IM into python. I can help with a utility for looking at height maps tho.

Attachment 28196

----------


## Crayons

That's fine, I had a look at ViewingDale in my various researches, very nice tool! The height field part of my project is the simplest bit and being able to view as a plan view is about all I need. I'm not competing with the abilities of VD or Wilbur and the like in height field abilities. All I need is to be able to see the heightfield, much as my screenshot shows it (although more choice of colours schemes would be fun later). That overhead view is basically the backdrop on which to plot the town items so that you don't put a ship in the market square or run a street up a cliff face or something. That means that the "plot screen" for nodes and lines for these things needs to scroll locked with the height field - synchronised. 
Creation of the height field itself is outside the scope of the Town Generator and viewing it at angles, while handy, is a low priority since the adjustment of town objects to sit *at* the correct height at the point of presence is done within "YATG3D" as part of the POVray code. In essence the GUI front end works on a "flat" world - for the foreseeable future!
However, I'm not at a point where I'm committed to using Python, so if wx can do the things I need and I can't get wx in Python, well, maybe a change to a different language is in order... ooooer.

----------


## Redrobes

ViewingDale, the main app, isn't 3D and doesn't use height maps thats just a little free thing used to look at them which are spat out from the other free tool instant islands used to make some real basic land masses. You can grab that and use it without having to buy or do anything. It's closed source freeware. I also use height maps to texture up backdrops but I use a different (and unfortunately unreleased) tool for that.

The scroll locked thing you can do by either offsetting the draw list of lines to the same offset for the map and then rendering out a section of it. Or, and more usually, you render the whole screen and put it into a scrollable window which shows only part of it. If I were doing this sort of thing then I would use a 3rd technique which is similar to the second and use windows MFC classes and GDI to draw the bitmap and lines and then copy a section to a displayable screen bit. Tho no hard, theres still a lot to know to do it tho. Id still think you would be better off using perl. Install any V5 32bit version and then install the image magick module by typing:


```
ppm install http://www.bribes.org/perl/ppm/Image-Magick.ppd
```

and then you can write a script where in a line or two load a bitmap and draw stuff on it. It wont be very fast tho. You may find that wx does easy graphics. I know there is a wx opengl thing you can use so presumably that works under Python. I havent ever used it and tho GL is very fast its a bit of a chore loading and saving images with it.

----------


## Crayons

Unashamed bump! and progress update.

YATG3D has not been forgotten but progress has been made very slowly.  An understanding of the Beta version of the GUI interface has been sort of hammered out and a very nice chap is getting to grips with Python to write it. The initial software will still be pretty basic and I think  I'll still be out there begging for someone to take it further after that. However, I'm hoping that a usable proof of principle Beta package might generate some interest? Ehem.
It's currently being developed under Linux but will run under windoze - at least so far it does.

On the povray Macro side I haven't done much except refine the fill tool a bit. Building macros is the easy bit.

Observant viewers will notice that I used aspects of the POVray macros to create my New Amsterdam entry in the New york thing. This means I sort of have some other building types available to incorporate using those architectural styles but it's not really much to write home about. 

As a reminder, the protowebsite for this idea is still
http://www.vgap4-info.org.uk/3DTownGen/
but if you've been there last time I haven't changed anything on it since

My Python man is not on board for the whole possible ride so if there is someone out there who just lurves to wrestle snakes then please get in contact.
Needless to say again really but a really whizzo street node map generator would really ice the cake! I'm really hoping the dazzling Ravs will get his economic Andyland working!!  :Cool:  

More later, I hope!

----------


## danjr

That is smoking awesome.  That is the kind of thing I want to do with my city.  wicked wicked wicked.

If I knew anything about the languages, i'd be in there like a dirty shirt.  Whenever it's ready for beta i'll be a test dummy for sure.  That way I can give you all the possible blunders a user can make LOL.

Once again this looks fantastic.

----------


## Ramah

Glad to hear you are still working on this project, Crayons. I'd forgotten about it but just looking again at your early screenies renewed my enthusiasm for seeing what this baby will be able to do when you've got it more where you want it to be.  :Smile:

----------


## Steel General

It's pretty darn cool already, good luck with it!  :Smile:

----------


## mearrin69

I had glanced at this before but just took the time to explore the site. This is something I'll play with for many hours when it's done! In the meantime it looks like you need building models? I don't have a lot of time at the moment and can't really commit to helping...but if you'd post specs (model format, poly limit, size, image map size, etc.) and a list of stuff you want I'd be willing to try to put a few together as I have time.
M

----------


## danjr

I spent a good deal of time looking at programming a GUI.  I fear it'd be too hard for me to learn in time to be any use.  Though I am trying to conceive of ideas of a gui layout to make it user friendly.  What I may do is try a website with mouseover images that would serve as a reference for the program.


One other thing I thought of with this is the possibility of modern cities too.  Allowing buildings to be upwards of 50+ stories tall.  Though with the building modifier set as a 1 for the tall structures.

A couple of cool random generation features would be
Building upper stories limit, with an average structure height.  This way it could generate a good spread.  Couple that with the road "quality"  The larger structures could congregate around those, giving it a real city feel.   (Though I am a huge fantasy fan, the city gen would be an awesome additional feature.)

The road generation of the map could be a huge key on the "vegetation"  "Quality" of roads would be an inverse ratio for adding in vegetation.  Default for the "walls" would also prevent them from generating vegetation near them.


I hope you don't mind my brainstorming on this project, it is far more worthy of encouragement than many things I've seen.

----------


## Crayons

Thanks again for the encouragement !!! It is something that I think people will have fun with.

@mearrin69
Models are always welcome but at the moment getting the GUI up and running is the priority, and since I have someone willing to start that what I am looking for is someone who would like to continue or even take over that role. I don't think my current snake charmer will object to passing on the baton. For now though, the intention is that the beta version will have sufficient basic functionality to inspire a baton picker-upper to leap into the breach. (Mixed metaphors? me?)   :Cool: 
As for models though, the requirement is that the model must be importable into POVRay, POVray is the core tool, the GUI just allows easy placement of objects by exporting POV code. if POVray can import the thing, it can usually scale it and shove it around for anything else. As for importing : POVRay is a bit like someone with type AB blood. It can accept (usually via third party converters) a number of model formats, but due to its seemingly unique code capabilities and focus on shape primitives is apparently not capable of exporting to any other format! I have successfully used Sketchup models (but textures may need tweaking) and meshes I've created in jpatch. A load of converters are out there for dxf and the like, I'd be happy to test any converted items people might like to send me!
One of the reasons I would never consider selling any of this stuff is its dependence on POVray . So, for example, you ask about image map size, and I can only say, "I don't know". At the moment I am using 200x200 pixel pngs as image maps for 2m x 2m wall sections. I'd prefer to use bigger maps , to enable whole sides of buildings to be textured, but I have had POVray "out of memory" errors - despite having lots of memory available. This could be/could have been a POVray bug that may be fixed.... Much depends on how big the town is and how many instances of "the thing" there are. As my streets are currently "the fill" there are a LOT of buildings. If you wanted to add one Cathedral, it probably wouldn't impact significantly???
If you want to create models, then work to what looks "right" for the scale of view you want to achieve, The stuff I've created assumes that this is for mapping and more distant views so anything under 0.1m is size is not modeled (but can be on image maps). For example - I would code a picket fence as solid and use an image map for the detail.
However, if someone wanted to create a ground level view of some street, they could create their own high detail foreground buildings (with or without picket fence!) and use 3dtg to "fill in" all the more distant stuff. 

@danjr
I have a GUI layout of sorts as it is - nothing "amazing" - it doesn't need to be. The BIG headache with this concept was entering all the locations since POVray alone is text only. The current development of the GUI is based on an already written program which is free for modification and allows mouse placement. At the moment it looks like this.

with the "Streets" tool only, now. Yes, the "new" button is too small, I'm gonna deal with that!
For any Python people out there? We are using pySketch by Erik Westra as the basis of the tool. I'll try to think of some way to thank him for putting that program out there for just this sort of thing!

On modern cities: sure! These things can be done. The idea behind 3dtg is that you will be able to write your own commands = street types in this case. How deeply those are coded into the GUI is up to debate but there will be a set of "generic" entry tools that will allow graphical insertion of "undefined things" that you then modify in the POV code afterward.
You can create new "tools"/"things" as POVray macros and only include the ones you want, like choosing your colour palette before painting. At the moment I'm concentrating on fantasy styles but anything "goes"!
The primary reason for choosing POVray is that (as far as I know) it is the only render tool that allows you to code "random". All the other (directly) GUI based tools are great for creating *A Thing* but not necessarily creating a whole bunch of random things based on an algorithm. My current street "tool" just needs a few parameters and it does all the rest itself.

As an insight to what you need. If I were to write a skyscraper street, I'd try to create a set of building type shapes, the basic "brick", the tiered "brick", the oval tube, the "pointy tower" and so on. I'd have a set of image_maps, brick, concrete, metal, tile, marble etc. I'd think up some algorithm for heights of buildings, perhaps linking some heights to some of the shapes. Write all that into a POV .INC file as a macro and Bob's your Uncle as we say. In many ways, it would be easier than my current "street" if it were city block based. Randomizing building placement on my street was/is complicated.

Needless to say, at the time of going to press on all this I will be creating Tutorials on a) Installing and Using the tool b) Modeling and creating macros in POVray.

The overall intent is not that I write all the tools! I'd rather enable people to "do their own thing". I doubt it will "take off" in a big way but if needed I might start a forum somewhere for people to share stuff and (if really necessary) try to control stuff??? My intent is that everything is FOSS.

----------


## ravells

It sounds really cool, crayons although I have to say that knowing nothing about programming means that I understand less than half about what you say. I have downloaded the trial version of city engine (but have not had the time to play with it as much as I would like)....does your city builder work on the same principles?

----------


## danjr

Love the GUI layout so far, simple and not overwhelming.

What about manual build up, or knock downs for buildings.  How would that be done.  Could it be a simple tool?  Personally I think that would be the make or break feature.

So exciting.

----------


## Crayons

@ravs! 
I get that a lot! Knowing nothing about programming. Well, apart from the very basics, neither do I  really. POV "code" is a lot like writing a list of shapes, giving them positions, colour, and so forth. There's a bunch of "overhead" but it can be that simple. The "code" part is really only as complicated as ye olde BASIC was on early home computers. If, while, case statements and the like, written like that olde worlde BASIC. None of your "object oriented" whatevers here. If I look at something like Python my mind just sorta goes blank. Anyway, I've decided to bite the bullet and start a POVRay Basics Tutorial. POV 101 for Beginners, it's at about my level too.  :Cool: 

@danjr
Erm, I'm don't understand what you mean about "manual build up" and "knock downs". Could you elucidate further?

----------


## ravells

Ah, BASIC, I can understand (well not sure how much i remember now)! Many Many moons ago I did an O level at computing, we worked on Commodore Pets and had write a programme as part of the course. Slight digression, I did a simple database to identify criminal suspects by height, colour build crime committed etc. One of the 'known criminals' on the database was the computer teacher. For some reason, whenever we queried it he always seemed to to be the chief suspect!

----------


## danjr

Ok lets say you randomly generate the city, it looks pretty decent but you want to edit things a bit.
By hovering over a structure you can add or remove floors one at a click or something along those lines.  I think that would be the highest priority function for a novice user.

As a Novice user the things I'd like most to be able to do are.
#1 Increase/Decrease structure by clicking on it.
#2 Changing the structure type

As a more Capable user
#1 Change terrain elevation
#2 Move streets around.  Maybe even add remove.


I think if those 4 functions were in the program, it would suit the needs of almost any GameMaster, of most systems. 

Wishlist for Advanced would be coast and river editing, along with piers, docks and bridges.  But the 4 I've mention before, would be more than enough for my selfish DM'ing needs.




On a separate discussion how would streets be editable, would they be like nodes of most art programs, where you could drag them around, along with add/remove?
That would really add an amazing editable ability for the users.

I hope I'm not overly bombarding you with stuff, like I said before this is probably the most useful program I've seen being developed.

----------


## Crayons

ravs
O'level Computer Studies eh? I did that too, back in around 1978/9? I wrote a Monopoly game in Algol that was so boring I called it "Monotonopoly". It was written on an Elliott 903 that I later became the owner of and have recently donated to The National  Museum of Computing at Bletchley Park (where I am now a volunteer, restoring it!). My old school computer is now a museum piece! That's enough to age anyone!
My more recent programming experience has been VHDL - hardware, quite a lot different from software even if it looks similar!

danjr
OK, I understand now.
Hrm. Good ideas and I think the tool could have some of that functionality but I suspect not quite as interactively as you'd like?
The tool is also not trying to duplicate the work of other tools, that, I think, would be a waste of effort. All that is needed is that other tools can be used in conjunction with this one - or vice-versa probably more tactful!

The creative process is envisaged thus:

1)If required, generate a height_field image, for my test bench town, Bendford, I used Paintshop Pro and Wilbur. 
2) Use the 3dtg GUI program to load up your height_field and place your objects on that in a top down only view.
3) Export your POV code to file(s). Save your GUI project file (currently PSK format)
4) Tinker around further with the POV code as you like.******
5) Choose your viewpoint and render settings and render your image in POVray.

***** It's important to understand that the main focus of results is on the POVRay element here. The GUI is mostly going to be there to simplify some of the more onerous parts of POVRay data entry, mainly inputting loads of coordinates! The GUI gives you the visual cues you need to place things in relation to your height_field. 


It should be possible to go back to any point and reiterate from there. 
However, I do not, for example, envisage the 3dtg GUI program providing height_field editing capabilities, that job is already excellently done with other programs.
However! I would be pre-empting the enthusiasm of any user willing to modify the code to do that by saying it would never happen. It just isn't planned for now. If you go back and edit your height_field with something like Wilbur, then load that instead of your original used in the GUI, then POVRay will adjust all the buildings to sit on that new height_field automatically.

At the moment we have the "street" tool working, it would seem. That is merely one of a set of tools which broadly fit into 3 categories based on how many coordinates they need.

Single coordinate tools planned are
Building
Tower
Gatehouse
Ship

Double coordinate tools
Street
Wall
Bridge

Multiple coordinate tools (up to 10 coordinates)
Fill Building Zone
Fill "Stuff" Zone
Urban Space Zone

then for each of these will be a "Generic" version
Generic Node
Generic Line
Generic Zone

The specific tools - like "Tower" bring up specific dialogue boxes to fill in that directly map to the POV macro call that is generated. Customised to the POV macro essentially.
The Generic tools will have (say) 10 text fields in the dialogue box to fill in that will appear in that order in the macro call. It's up to you to do some simple POVRay editing to customise it any further for the macro you are using it for. The basic benefit of using the GUI for this is the mouse entry of the node position(s). 

Editing :
If you create a street using the Street Tool, you cannot edit individual buildings in that street. All you can do is ask it to generate a different street based on a different random sequence. That would likely be a direct POV task at the moment (but easy to do).
However, if you manually lay out a street by placing individual buildings one by one, yourself, then you can edit those individually.

As for "knocking down" and the like, this would not be by interactively clicking on a symbol on the image portion of the GUI like (say) "Populous" the game changing heights, you would have to select the item and edit the dialogue box variables. The current "Building" macro design does not have "Number of floors" as one of those variables, it is currently derived loosely from the building "Size". However, one could modify the Building macro and use the Generic Node tool to enter  parameters for this as a non-standard tool - as it were. Building "type" likewise, I have a building type now, which reflects its building materials: wood, brick etc. 

Ultimately, this is not targeted as a pure "Design Tool" where you need (and have) control of every aspect of the design. Aspects of this tool are designed, deliberately, to generate random "stuff" so things are, hopefully, quicker and more fun, perhaps.

Good news is, in the GUI all items are moveable, including street ends, and are removable/copyable.

Ultimately, the tools will all be available for you to tinker with, if you have the skills(!) and I would encourage that too. It does however represent a challenge as to whether or how far to control, say, a core code-set. All that will depend on "the community", if such there be, of users interested in collaborating on its future. If any!

----------


## Crayons

I thought I'd try another Sketchup model from the warehouse, and this is a version with the Rathaus Nördlingen by digitalstonemason. As with most things Sketchup Warehouse, I'm unsure of its copyright status, but it's a model you can download and use (somehow?) it just isn't clear what the limitations are! I hope the author doesn't mind. 

The issue that concerns me here is that sketchup models seem to look a bit "washed out" which could be that my buildings are too contrasty, or, the use of photographs in Sketchup tends to lead towards lower contrast. It's pretty though, even if it's probably the wrong way round !
However, these models do seem to convert across with all their image_maps and these can be altered.... if only we knew the usage limitations!!! Aaaargh.

@mearrin again
Sorry, it's been a while since I fired up some aspects of this thing. 3dtg currently has 3 detail levels I can render it at (aside from the AA settings).
level 1 makes all my "vanila" buildigs yellow, with red roofs
level 2 uses pigments and "normals" with just the windows added as image_maps - the above image is level 2
level 3 uses all image maps (200x200 pix ones I mentioned earlito er) and this level crashes POVray on my Bendford testbench.

Chances are that a smaller town will run at level 3. It's the sheer quantity of buildings involved I think stuffs it. 
It may be that using a different file format and decreasing colour depth might fix some of this. That may be why sketchup looks washed out? So many things to test.
You did ask about what buildings need to be done, well, that's a tricky one. There's any amount of "one-off" type buildings one could make - all of these I would categorize as "specials" like this Rathaus here. You don't want two of these. As such, pretty much anything goes that would fit into the fantasy/medieval style genre. Most buildings don't really identify what they are by their shape. Some do, obviously.
If and when I can get more Tutorials written for potential POV users, then more of the vanilla style randomized building macros can be created. One challenge I'd like to get my teeth into is the "corner building"  - things that could work as Taverns and Inns and the like. 
I only have 2 ships at the moment - a galley and a cog. No mages towers, courtyard buildings like monasteries or barracks and the like. I could go on.

One solution in sketchup (like I have done in POV) would be to make bits of buildings that can be randomly connected together, the trick is working out a good algorithm - and randomizing the colour schemes.. coooeee.

----------


## danjr

That newest image looks pretty close to what Lankhmar would be.  The number of intersecting buildings on that map is overwhelming.  Your program would probably do it justice.

----------

