Rapid Labyrinth Prototyping - what modeling program to use?

I wish to build a labyrinth, similar to this one for the purposes of engaging students (more on this idea is here), by painting the walls of rooms with study material, and painting doors with problems for students to solve. Solving the problems on the doors should open them. (There may be a need of adding many doors.)

My question: what 3D modeling program would you recommend for such simple purpose, if I would desire to be able to prototype labyrinths as rapidly as possible? (I’m running Linux.)

Also: any general recommendations on how should I proceed with this idea? (I’m currently studying the Bump-Mapping example.)

Hi, welcome to the forums!

Did you consider Blender?

I would suggest studying Naith’s code.

That’s amazing! Thank you so much! There’s almost all I need, and it’s working code! Some extra concern:

Is there a way to wallpaper the walls without tiling? (that is, by adding absolutely-positioned pictures)

It’d be best to add quads where you want to add the pictures or posters, and offset them a tiny bit from the wall (using a depth offset like setDepthOffset(1)), and apply the desired texture to it.

Is setDepthOffset designed to avoid z-fighting even great distances?

setDepthOffset inherently removes z-fighting at any distance.

Niriel, rdb, thank you for great suggestions!~

In order to quickly prototype labyrinths, I am considering to write a script, which, given a 3D Python array, with each number representing a 3D component (a building block), combines the components into a maze automatically, so a labyrinth creator only would need to basically draw the labyrinth using some Voxel (3D pixel) editor (knowing which color represents what building block).

Question: In order to write that kind of script, what would you think would be more better – generate egg files directly, or script from within Blender?

UPDATE: So, I figured out how to do it with Blender.

import bpy
bpy.data.objects['Cube'].location.y -= 2
bpy.ops.mesh.primitive_cube_add()

Once the components are all put together, I guess, there should be some command (keyboard: Ctrl+J) in Blender that merges it all into one single solid, which I could then import to Panda3D.