Skip to content

Instantly share code, notes, and snippets.

@RageshAntony
Created September 9, 2026 17:16
Show Gist options
  • Select an option

  • Save RageshAntony/561b2f1c8e5c43042f6850f9806cd5db to your computer and use it in GitHub Desktop.

Select an option

Save RageshAntony/561b2f1c8e5c43042f6850f9806cd5db to your computer and use it in GitHub Desktop.
GPT-6 Astra VS Gemini 3.1 Pro
#VRML V2.0 utf8
WorldInfo {
title "Chettinad Courtyard House"
info [
"Architectural interpretation of a traditional Chettinad house."
"Units are metres. The entrance faces positive Z."
"Use the viewpoint menu to explore the house."
]
}
NavigationInfo {
type [ "WALK", "EXAMINE", "ANY" ]
avatarSize [ 0.25, 1.65, 0.35 ]
speed 2.5
headlight FALSE
}
Background {
skyAngle [ 1.25, 1.57 ]
skyColor [
0.30 0.57 0.82,
0.66 0.81 0.93,
0.90 0.92 0.88
]
groundAngle [ 1.57 ]
groundColor [
0.42 0.36 0.25,
0.64 0.58 0.43
]
}
DirectionalLight {
direction -0.45 -1 -0.35
color 1 0.94 0.82
intensity 0.95
ambientIntensity 0.35
}
DirectionalLight {
direction 0.7 -0.5 0.4
color 0.76 0.85 1
intensity 0.35
}
Viewpoint {
description "01 - Entrance elevation"
position 25 17 36
orientation -0.474 0.871 0.128 0.666
fieldOfView 0.85
}
Viewpoint {
description "02 - Entrance veranda"
position 0 2.4 20
orientation 0 1 0 0
fieldOfView 0.95
}
Viewpoint {
description "03 - Main courtyard"
position 0 2.4 5.8
orientation 0 1 0 0
fieldOfView 1.2
}
Viewpoint {
description "04 - Courtyard looking toward entrance"
position 0 2.4 -4.2
orientation 0 1 0 3.14159
fieldOfView 1.15
}
Viewpoint {
description "05 - Rear domestic courtyard"
position 0 2.4 -9.8
orientation 0 1 0 0
fieldOfView 1.1
}
Viewpoint {
description "06 - Aerial courtyard layout"
position 0 39 20
orientation 1 0 0 -1.05
fieldOfView 0.95
}
# ============================================================
# REUSABLE ARCHITECTURAL COMPONENTS
# ============================================================
PROTO Block [
field SFVec3f position 0 0 0
field SFVec3f size 1 1 1
field SFColor color 0.88 0.80 0.65
] {
Transform {
translation IS position
children [
Shape {
appearance Appearance {
material Material {
diffuseColor IS color
}
}
geometry Box {
size IS size
}
}
]
}
}
# Horizontal decorative floor.
# PixelTexture provides a self-contained, stylized tile pattern.
PROTO PatternFloor [
field SFVec3f position 0 0 0
field SFVec3f scale 1 1 1
field SFVec2f repeat 8 8
] {
Transform {
translation IS position
scale IS scale
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 1
specularColor 0.25 0.25 0.25
shininess 0.35
}
texture PixelTexture {
image 8 8 3
0x65372E 0xE5CE93 0xE5CE93 0x315B50 0x315B50 0xE5CE93 0xE5CE93 0x65372E
0xE5CE93 0xA44532 0xE5CE93 0xE5CE93 0xE5CE93 0xE5CE93 0xA44532 0xE5CE93
0xE5CE93 0xE5CE93 0x315B50 0xE5CE93 0xE5CE93 0x315B50 0xE5CE93 0xE5CE93
0x315B50 0xE5CE93 0xE5CE93 0xA44532 0xA44532 0xE5CE93 0xE5CE93 0x315B50
0x315B50 0xE5CE93 0xE5CE93 0xA44532 0xA44532 0xE5CE93 0xE5CE93 0x315B50
0xE5CE93 0xE5CE93 0x315B50 0xE5CE93 0xE5CE93 0x315B50 0xE5CE93 0xE5CE93
0xE5CE93 0xA44532 0xE5CE93 0xE5CE93 0xE5CE93 0xE5CE93 0xA44532 0xE5CE93
0x65372E 0xE5CE93 0xE5CE93 0x315B50 0x315B50 0xE5CE93 0xE5CE93 0x65372E
repeatS TRUE
repeatT TRUE
}
textureTransform TextureTransform {
scale IS repeat
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [
-1 0 -1,
-1 0 1,
1 0 1,
1 0 -1
]
}
coordIndex [ 0, 1, 2, 3, -1 ]
texCoord TextureCoordinate {
point [
0 0,
0 1,
1 1,
1 0
]
}
texCoordIndex [ 0, 1, 2, 3, -1 ]
solid FALSE
}
}
]
}
}
# Turned timber column, including stone foot and carved brackets.
# Local bottom is Y=0; overall height is approximately 3.65.
PROTO TimberColumn [
field SFVec3f position 0 0 0
] {
Transform {
translation IS position
children [
Block {
position 0 0.12 0
size 0.62 0.24 0.62
color 0.34 0.34 0.31
}
Block {
position 0 0.29 0
size 0.48 0.10 0.48
color 0.54 0.52 0.46
}
Transform {
translation 0 0.43 0
children [
Shape {
appearance DEF TIMBER Appearance {
material Material {
diffuseColor 0.23 0.095 0.035
specularColor 0.25 0.15 0.07
shininess 0.3
}
}
geometry Cylinder {
radius 0.22
height 0.18
}
}
]
}
Transform {
translation 0 1.77 0
children [
Shape {
appearance USE TIMBER
geometry Cylinder {
radius 0.145
height 2.52
}
}
]
}
Transform {
translation 0 0.68 0
children [
Shape {
appearance USE TIMBER
geometry Cylinder {
radius 0.19
height 0.12
}
}
]
}
Transform {
translation 0 2.83 0
children [
Shape {
appearance USE TIMBER
geometry Cylinder {
radius 0.19
height 0.12
}
}
]
}
Transform {
translation 0 3.04 0
children [
Shape {
appearance USE TIMBER
geometry Cylinder {
radius 0.23
height 0.18
}
}
]
}
Block {
position 0 3.23 0
size 0.48 0.20 0.48
color 0.23 0.095 0.035
}
Block {
position 0 3.55 0
size 0.94 0.20 0.54
color 0.23 0.095 0.035
}
Transform {
translation -0.24 3.37 0
rotation 0 0 1 -0.65
children [
Block {
size 0.15 0.50 0.25
color 0.29 0.12 0.045
}
]
}
Transform {
translation 0.24 3.37 0
rotation 0 0 1 0.65
children [
Block {
size 0.15 0.50 0.25
color 0.29 0.12 0.045
}
]
}
]
}
}
# Pitched roof.
# Local ridge runs along Z.
# scale = half-width, roof rise, half-length.
PROTO TiledRoof [
field SFVec3f position 0 0 0
field SFVec3f scale 4 1.8 8
field SFRotation rotation 0 1 0 0
] {
Transform {
translation IS position
rotation IS rotation
scale IS scale
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 1
ambientIntensity 0.3
}
texture PixelTexture {
image 4 4 3
0x713923 0xAB5735 0xBD6842 0x924225
0x713923 0xB45E38 0xC7754A 0x98482B
0x713923 0xAC5633 0xBD6842 0x924225
0x582F22 0x743A25 0x7B4029 0x653321
repeatS TRUE
repeatT TRUE
}
textureTransform TextureTransform {
scale 12 22
}
}
geometry IndexedFaceSet {
coord DEF ROOF_POINTS Coordinate {
point [
-1 0 -1,
1 0 -1,
0 1 -1,
-1 0 1,
1 0 1,
0 1 1
]
}
coordIndex [
0, 3, 5, 2, -1,
2, 5, 4, 1, -1
]
texCoord TextureCoordinate {
point [
0 0, 0 1, 1 1, 1 0,
0 0, 0 1, 1 1, 1 0
]
}
texCoordIndex [
0, 1, 2, 3, -1,
4, 5, 6, 7, -1
]
solid FALSE
}
}
# Plastered gable ends.
Shape {
appearance Appearance {
material Material {
diffuseColor 0.89 0.79 0.60
}
}
geometry IndexedFaceSet {
coord USE ROOF_POINTS
coordIndex [
0, 2, 1, -1,
3, 4, 5, -1
]
solid FALSE
}
}
Block {
position 0 1.015 0
size 0.075 0.08 2.03
color 0.46 0.20 0.10
}
Block {
position -1 -0.035 0
size 0.045 0.07 2.04
color 0.27 0.12 0.06
}
Block {
position 1 -0.035 0
size 0.045 0.07 2.04
color 0.27 0.12 0.06
}
]
}
}
# Decorative shuttered window; fitted to a wall facing positive Z.
PROTO ShutterWindow [
field SFVec3f position 0 0 0
field SFRotation rotation 0 1 0 0
] {
Transform {
translation IS position
rotation IS rotation
children [
Block {
size 1.62 1.94 0.16
color 0.85 0.72 0.48
}
Block {
position 0 0 0.10
size 1.37 1.66 0.12
color 0.12 0.20 0.17
}
Block {
position 0 0 0.18
size 0.065 1.7 0.07
color 0.27 0.12 0.045
}
Block {
position 0 0.55 0.19
size 1.34 0.085 0.08
color 0.24 0.32 0.25
}
Block {
position 0 0.28 0.19
size 1.34 0.085 0.08
color 0.24 0.32 0.25
}
Block {
position 0 0 0.19
size 1.34 0.085 0.08
color 0.24 0.32 0.25
}
Block {
position 0 -0.28 0.19
size 1.34 0.085 0.08
color 0.24 0.32 0.25
}
Block {
position 0 -0.55 0.19
size 1.34 0.085 0.08
color 0.24 0.32 0.25
}
Block {
position 0 -1.03 0.10
size 1.90 0.18 0.45
color 0.74 0.65 0.49
}
Block {
position 0 1.04 0.16
size 1.96 0.16 0.58
color 0.89 0.79 0.61
}
]
}
}
# A carved door leaf, with hinge at its local origin.
PROTO DoorLeaf [
] {
Group {
children [
Block {
position 0.59 1.42 0
size 1.18 2.84 0.13
color 0.22 0.085 0.028
}
DEF PANEL_A Block {
position 0.31 0.50 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Block {
position 0.87 0.50 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Block {
position 0.31 1.42 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Block {
position 0.87 1.42 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Block {
position 0.31 2.34 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Block {
position 0.87 2.34 0.085
size 0.43 0.67 0.08
color 0.36 0.17 0.065
}
Transform {
translation 0.96 1.4 0.18
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.76 0.53 0.16
specularColor 0.85 0.70 0.35
shininess 0.75
}
}
geometry Sphere { radius 0.065 }
}
]
}
]
}
}
# Ornamental portal with permanently open double leaves.
PROTO GrandPortal [
field SFVec3f position 0 0 0
field SFRotation rotation 0 1 0 0
] {
Transform {
translation IS position
rotation IS rotation
children [
Block {
position -1.42 1.55 0
size 0.32 3.10 0.44
color 0.24 0.10 0.035
}
Block {
position 1.42 1.55 0
size 0.32 3.10 0.44
color 0.24 0.10 0.035
}
Block {
position 0 3.0 0
size 3.18 0.30 0.48
color 0.24 0.10 0.035
}
Block {
position -1.65 1.64 0
size 0.12 3.28 0.32
color 0.62 0.40 0.15
}
Block {
position 1.65 1.64 0
size 0.12 3.28 0.32
color 0.62 0.40 0.15
}
Block {
position 0 3.25 0
size 3.48 0.14 0.42
color 0.62 0.40 0.15
}
Block {
position 0 3.46 0
size 3.8 0.22 0.58
color 0.27 0.11 0.035
}
# Central carved medallion.
Transform {
translation 0 3.46 0.34
scale 1 0.65 0.30
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.75 0.52 0.20
}
}
geometry Sphere { radius 0.23 }
}
]
}
Transform {
translation -1.24 0.02 0
rotation 0 1 0 1.15
children [ DoorLeaf {} ]
}
Transform {
translation 1.24 0.02 0
rotation 0 1 0 1.99159
children [ DoorLeaf {} ]
}
]
}
}
# Open doorway for side rooms.
PROTO RoomPortal [
field SFVec3f position 0 0 0
field SFRotation rotation 0 1 0 0
] {
Transform {
translation IS position
rotation IS rotation
children [
Block {
position -0.72 1.35 0
size 0.15 2.70 0.28
color 0.25 0.11 0.04
}
Block {
position 0.72 1.35 0
size 0.15 2.70 0.28
color 0.25 0.11 0.04
}
Block {
position 0 2.72 0
size 1.62 0.18 0.31
color 0.25 0.11 0.04
}
Block {
position 0 2.93 0
size 1.83 0.12 0.39
color 0.58 0.36 0.13
}
]
}
}
# Side-wing corridor wall, with actual door gaps.
PROTO WingWall [
field SFVec3f position 0 0 0
] {
Transform {
translation IS position
children [
Block {
position 0 1.82 -13.6
size 0.25 3.64 2.8
}
Block {
position 0 1.82 -9.1
size 0.25 3.64 3.2
}
Block {
position 0 1.82 -4.1
size 0.25 3.64 3.2
}
Block {
position 0 1.82 0.9
size 0.25 3.64 3.2
}
Block {
position 0 1.82 5.85
size 0.25 3.64 3.1
}
# Lintels above the four door openings.
Block {
position 0 3.24 -11.45
size 0.25 0.80 1.5
}
Block {
position 0 3.24 -6.65
size 0.25 0.80 1.7
}
Block {
position 0 3.24 -1.65
size 0.25 0.80 1.7
}
Block {
position 0 3.24 3.40
size 0.25 0.80 1.8
}
RoomPortal {
position 0 0 -11.45
rotation 0 1 0 1.5708
}
RoomPortal {
position 0 0 -6.65
rotation 0 1 0 1.5708
}
RoomPortal {
position 0 0 -1.65
rotation 0 1 0 1.5708
}
RoomPortal {
position 0 0 3.4
rotation 0 1 0 1.5708
}
]
}
}
PROTO HangingLamp [
field SFVec3f position 0 0 0
] {
Transform {
translation IS position
children [
Transform {
translation 0 -0.35 0
children [
Shape {
appearance DEF BRASS Appearance {
material Material {
diffuseColor 0.68 0.45 0.12
specularColor 0.85 0.68 0.31
shininess 0.75
}
}
geometry Cylinder {
radius 0.016
height 0.70
}
}
]
}
Transform {
translation 0 -0.77 0
children [
Shape {
appearance USE BRASS
geometry Cone {
bottomRadius 0.22
height 0.18
}
}
]
}
Transform {
translation 0 -0.88 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 0.77 0.27
emissiveColor 0.65 0.31 0.06
}
}
geometry Sphere { radius 0.055 }
}
]
}
PointLight {
location 0 -0.88 0
color 1 0.76 0.42
intensity 0.35
radius 5
attenuation 1 0.12 0.03
}
]
}
}
PROTO Planter [
field SFVec3f position 0 0 0
] {
Transform {
translation IS position
children [
Transform {
translation 0 0.27 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.60 0.27 0.13
}
}
geometry Cylinder {
radius 0.35
height 0.54
}
}
]
}
Transform {
translation 0 0.55 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.22 0.14 0.07
}
}
geometry Cylinder {
radius 0.31
height 0.025
}
}
]
}
Transform {
translation 0 0.87 0
scale 1 1.2 1
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.19 0.38 0.12
}
}
geometry Sphere { radius 0.34 }
}
]
}
]
}
}
# ============================================================
# SITE, PLINTH, STEPS, AND FLOORING
# ============================================================
Block {
position 0 -0.14 0
size 70 0.25 75
color 0.57 0.51 0.36
}
# Front approach.
Block {
position 0 0.005 24
size 6.8 0.04 16
color 0.64 0.60 0.50
}
# Raised masonry platform.
Block {
position 0 0.29 0
size 25.2 0.58 31.4
color 0.47 0.43 0.35
}
Block {
position 0 0.63 0
size 24.8 0.10 31.0
color 0.73 0.66 0.53
}
# Entrance steps.
Block {
position 0 0.10 17.0
size 6.8 0.20 1.3
color 0.55 0.52 0.45
}
Block {
position 0 0.22 16.5
size 6.3 0.24 1.0
color 0.62 0.58 0.49
}
Block {
position 0 0.40 16.0
size 5.8 0.24 0.8
color 0.68 0.62 0.51
}
# Thinnai and reception-hall floors.
PatternFloor {
position 0 0.691 13
scale 12 1 2
repeat 24 4
}
PatternFloor {
position 0 0.692 9.3
scale 12 1 1.7
repeat 24 4
}
# Long courtyard galleries.
PatternFloor {
position -5.65 0.693 -3.7
scale 1.35 1 11.1
repeat 3 22
}
PatternFloor {
position 5.65 0.693 -3.7
scale 1.35 1 11.1
repeat 3 22
}
# Side-room floors.
PatternFloor {
position -9.5 0.691 -3.7
scale 2.35 1 11.1
repeat 5 22
}
PatternFloor {
position 9.5 0.691 -3.7
scale 2.35 1 11.1
repeat 5 22
}
# Family hall and rear service strip.
PatternFloor {
position 0 0.694 -7
scale 4.3 1 2
repeat 9 4
}
PatternFloor {
position 0 0.694 -14
scale 4.3 1 1
repeat 9 2
}
# Main open-to-sky courtyard.
Block {
position 0 0.68 1
size 8.4 0.035 12
color 0.73 0.66 0.53
}
# Stone courtyard edging; kept low for walking.
Block {
position -4.20 0.71 1
size 0.18 0.09 12.2
color 0.39 0.39 0.35
}
Block {
position 4.20 0.71 1
size 0.18 0.09 12.2
color 0.39 0.39 0.35
}
Block {
position 0 0.71 7
size 8.5 0.09 0.18
color 0.39 0.39 0.35
}
Block {
position 0 0.71 -5
size 8.5 0.09 0.18
color 0.39 0.39 0.35
}
# Central rainwater collection grille.
Block {
position 0 0.705 1
size 0.66 0.025 0.66
color 0.17 0.18 0.17
}
Block {
position -0.20 0.725 1
size 0.035 0.025 0.62
color 0.42 0.42 0.38
}
Block {
position 0 0.725 1
size 0.035 0.025 0.62
color 0.42 0.42 0.38
}
Block {
position 0.20 0.725 1
size 0.035 0.025 0.62
color 0.42 0.42 0.38
}
# Smaller rear courtyard.
Block {
position 0 0.68 -11
size 8.4 0.035 4
color 0.70 0.62 0.48
}
Block {
position 0 0.71 -9
size 8.5 0.08 0.16
color 0.39 0.39 0.35
}
Block {
position 0 0.71 -13
size 8.5 0.08 0.16
color 0.39 0.39 0.35
}
# ============================================================
# WALLS AND ROOM ORGANIZATION
# ============================================================
# External masonry.
Block {
position -12 2.53 -2
size 0.36 3.68 26
}
Block {
position 12 2.53 -2
size 0.36 3.68 26
}
Block {
position 0 2.53 -15
size 24 3.68 0.36
}
# Contrasting external base courses.
Block {
position -12.04 0.96 -2
size 0.43 0.52 26
color 0.56 0.29 0.18
}
Block {
position 12.04 0.96 -2
size 0.43 0.52 26
color 0.56 0.29 0.18
}
Block {
position 0 0.96 -15.04
size 24 0.52 0.43
color 0.56 0.29 0.18
}
# Entrance wall with an actual central opening.
Block {
position -6.88 2.53 11
size 10.24 3.68 0.32
}
Block {
position 6.88 2.53 11
size 10.24 3.68 0.32
}
Block {
position 0 4.11 11
size 3.52 0.52 0.32
}
GrandPortal {
position 0 0.70 11.20
}
# Inner reception screen; broad opening into main courtyard.
Block {
position -8.15 2.53 7.5
size 7.7 3.68 0.25
}
Block {
position 8.15 2.53 7.5
size 7.7 3.68 0.25
}
Block {
position 0 4.12 7.5
size 8.6 0.50 0.25
}
# Side rooms open onto the galleries.
WingWall { position -7 0.70 0 }
WingWall { position 7 0.70 0 }
# Cross-partitions inside each room wing.
Block { position -9.5 2.53 -9 size 4.8 3.66 0.22 }
Block { position -9.5 2.53 -4 size 4.8 3.66 0.22 }
Block { position -9.5 2.53 1 size 4.8 3.66 0.22 }
Block { position -9.5 2.53 6 size 4.8 3.66 0.22 }
Block { position 9.5 2.53 -9 size 4.8 3.66 0.22 }
Block { position 9.5 2.53 -4 size 4.8 3.66 0.22 }
Block { position 9.5 2.53 1 size 4.8 3.66 0.22 }
Block { position 9.5 2.53 6 size 4.8 3.66 0.22 }
# Rear hall side enclosure; central axis remains traversable.
Block { position -4.25 2.53 -7 size 0.22 3.66 4 }
Block { position 4.25 2.53 -7 size 0.22 3.66 4 }
# Rear service spaces.
Block {
position -2.7 1.17 -14.25
size 2.2 0.94 1.1
color 0.46 0.43 0.36
}
Block {
position -2.7 1.68 -14.25
size 2.3 0.10 1.2
color 0.22 0.23 0.21
}
Block {
position 2.9 1.22 -14.3
size 1.6 1.04 1.0
color 0.56 0.31 0.17
}
# ============================================================
# SHUTTERS AND FACADE DETAIL
# ============================================================
ShutterWindow { position -8.7 2.45 11.20 }
ShutterWindow { position -4.5 2.45 11.20 }
ShutterWindow { position 4.5 2.45 11.20 }
ShutterWindow { position 8.7 2.45 11.20 }
# Outer side-wall shutter assemblies.
ShutterWindow {
position -12.22 2.5 3.5
rotation 0 1 0 -1.5708
}
ShutterWindow {
position -12.22 2.5 -1.5
rotation 0 1 0 -1.5708
}
ShutterWindow {
position -12.22 2.5 -6.5
rotation 0 1 0 -1.5708
}
ShutterWindow {
position -12.22 2.5 -11.5
rotation 0 1 0 -1.5708
}
ShutterWindow {
position 12.22 2.5 3.5
rotation 0 1 0 1.5708
}
ShutterWindow {
position 12.22 2.5 -1.5
rotation 0 1 0 1.5708
}
ShutterWindow {
position 12.22 2.5 -6.5
rotation 0 1 0 1.5708
}
ShutterWindow {
position 12.22 2.5 -11.5
rotation 0 1 0 1.5708
}
# Facade cornice and narrow colored frieze.
Block {
position 0 4.08 11.24
size 24.3 0.12 0.22
color 0.51 0.24 0.14
}
Block {
position 0 4.33 11.15
size 24.5 0.20 0.60
color 0.93 0.84 0.67
}
# Raised thinnai seats on either side of entrance.
Block {
position -7.0 0.96 13.35
size 7.8 0.52 1.3
color 0.83 0.73 0.55
}
Block {
position 7.0 0.96 13.35
size 7.8 0.52 1.3
color 0.83 0.73 0.55
}
Block {
position -7.0 1.25 13.35
size 8.0 0.10 1.42
color 0.39 0.20 0.11
}
Block {
position 7.0 1.25 13.35
size 8.0 0.10 1.42
color 0.39 0.20 0.11
}
# ============================================================
# TIMBER COLONNADES AND BEAMS
# ============================================================
# Front veranda.
TimberColumn { position -11.2 0.70 14.7 }
TimberColumn { position -8.4 0.70 14.7 }
TimberColumn { position -5.6 0.70 14.7 }
TimberColumn { position -2.8 0.70 14.7 }
TimberColumn { position 2.8 0.70 14.7 }
TimberColumn { position 5.6 0.70 14.7 }
TimberColumn { position 8.4 0.70 14.7 }
TimberColumn { position 11.2 0.70 14.7 }
# Main courtyard galleries.
TimberColumn { position -4.55 0.70 6.7 }
TimberColumn { position -4.55 0.70 3.8 }
TimberColumn { position -4.55 0.70 0.9 }
TimberColumn { position -4.55 0.70 -2.0 }
TimberColumn { position -4.55 0.70 -4.8 }
TimberColumn { position 4.55 0.70 6.7 }
TimberColumn { position 4.55 0.70 3.8 }
TimberColumn { position 4.55 0.70 0.9 }
TimberColumn { position 4.55 0.70 -2.0 }
TimberColumn { position 4.55 0.70 -4.8 }
# Transverse colonnades at the two ends of the main courtyard.
TimberColumn { position -1.55 0.70 7.35 }
TimberColumn { position 1.55 0.70 7.35 }
TimberColumn { position -1.55 0.70 -5.25 }
TimberColumn { position 1.55 0.70 -5.25 }
# Rear courtyard.
TimberColumn { position -4.55 0.70 -9.2 }
TimberColumn { position -4.55 0.70 -12.8 }
TimberColumn { position 4.55 0.70 -9.2 }
TimberColumn { position 4.55 0.70 -12.8 }
TimberColumn { position -1.55 0.70 -9.1 }
TimberColumn { position 1.55 0.70 -9.1 }
TimberColumn { position -1.55 0.70 -13.2 }
TimberColumn { position 1.55 0.70 -13.2 }
# Heavy timber beams.
Block {
position 0 4.25 14.7
size 24.2 0.28 0.38
color 0.23 0.095 0.035
}
Block {
position -4.55 4.25 -3.4
size 0.36 0.28 20.9
color 0.23 0.095 0.035
}
Block {
position 4.55 4.25 -3.4
size 0.36 0.28 20.9
color 0.23 0.095 0.035
}
Block {
position 0 4.25 7.35
size 9.4 0.28 0.36
color 0.23 0.095 0.035
}
Block {
position 0 4.25 -5.25
size 9.4 0.28 0.36
color 0.23 0.095 0.035
}
Block {
position 0 4.25 -9.1
size 9.4 0.28 0.36
color 0.23 0.095 0.035
}
Block {
position 0 4.25 -13.2
size 9.4 0.28 0.36
color 0.23 0.095 0.035
}
# Visible front-veranda joists.
DEF FRONT_JOIST Block {
position -10 4.10 12.9
size 0.12 0.18 3.6
color 0.31 0.15 0.06
}
Transform { translation 2 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 4 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 6 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 8 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 10 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 12 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 14 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 16 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 18 0 0 children [ USE FRONT_JOIST ] }
Transform { translation 20 0 0 children [ USE FRONT_JOIST ] }
# ============================================================
# ROOFS: COURTYARD OPENINGS ARE LEFT UNCOVERED
# ============================================================
# Front hall and thinnai roof; ridge runs across the facade.
TiledRoof {
position 0 4.42 11.4
rotation 0 1 0 1.5708
scale 4.3 1.85 12.7
}
# Long side-wing roofs.
TiledRoof {
position -8.6 4.42 -3.8
scale 4.4 1.8 11.3
}
TiledRoof {
position 8.6 4.42 -3.8
scale 4.4 1.8 11.3
}
# Transverse family hall roof between the courtyards.
TiledRoof {
position 0 4.42 -7
rotation 0 1 0 1.5708
scale 2.15 1.25 4.25
}
# Rear service-veranda roof.
TiledRoof {
position 0 4.42 -14.15
rotation 0 1 0 1.5708
scale 1.10 0.90 4.25
}
# ============================================================
# ORNAMENTAL ENTRANCE FRONTISPIECE
# ============================================================
# Central plaster pediment above the front colonnade.
Block {
position 0 4.72 15.05
size 5.5 0.55 0.38
color 0.91 0.81 0.62
}
Block {
position 0 4.46 15.10
size 5.9 0.16 0.52
color 0.98 0.90 0.73
}
Block {
position 0 5.03 15.10
size 5.9 0.16 0.52
color 0.98 0.90 0.73
}
Transform {
translation 0 5.09 15.1
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.90 0.79 0.58
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [
-2.9 0 0.22,
2.9 0 0.22,
0 1.15 0.22,
-2.9 0 -0.22,
2.9 0 -0.22,
0 1.15 -0.22
]
}
coordIndex [
0, 1, 2, -1,
5, 4, 3, -1,
0, 3, 4, 1, -1,
1, 4, 5, 2, -1,
2, 5, 3, 0, -1
]
solid FALSE
}
]
]
}
# Pediment medallion.
Transform {
translation 0 5.47 15.38
rotation 1 0 0 1.5708
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.48 0.25 0.12
}
}
geometry Cylinder {
radius 0.28
height 0.08
}
}
]
}
# Finials.
Transform {
translation 0 6.42 15.1
children [
Shape {
appearance DEF FINIAL_MAT Appearance {
material Material {
diffuseColor 0.91 0.80 0.59
}
}
geometry Sphere { radius 0.18 }
}
]
}
Transform {
translation -2.7 5.28 15.1
children [
Shape {
appearance USE FINIAL_MAT
geometry Sphere { radius 0.16 }
}
]
}
Transform {
translation 2.7 5.28 15.1
children [
Shape {
appearance USE FINIAL_MAT
geometry Sphere { radius 0.16 }
}
]
}
# ============================================================
# DOMESTIC DETAILS, LIGHTING, AND LANDSCAPING
# ============================================================
HangingLamp { position 0 4.12 12.7 }
HangingLamp { position -5.65 4.12 3.5 }
HangingLamp { position 5.65 4.12 3.5 }
HangingLamp { position -5.65 4.12 -3.0 }
HangingLamp { position 5.65 4.12 -3.0 }
HangingLamp { position 0 4.12 -7.0 }
# Timber swing in the family hall.
Block {
position 0 1.23 -7.25
size 2.2 0.14 0.80
color 0.28 0.12 0.04
}
Transform {
translation -0.93 2.68 -7.25
children [
Shape {
appearance DEF CHAIN_MAT Appearance {
material Material {
diffuseColor 0.36 0.32 0.22
specularColor 0.55 0.50 0.32
}
}
geometry Cylinder {
radius 0.018
height 2.76
}
}
]
}
Transform {
translation 0.93 2.68 -7.25
children [
Shape {
appearance USE CHAIN_MAT
geometry Cylinder {
radius 0.018
height 2.76
}
}
]
}
# Low storage chest in a side room.
Block {
position -10.6 1.13 -2.6
size 1.65 0.88 0.80
color 0.27 0.12 0.045
}
Block {
position -10.6 1.62 -2.6
size 1.76 0.10 0.89
color 0.38 0.20 0.08
}
# Simple cot in an opposite room.
Block {
position 9.55 1.04 -1.55
size 1.85 0.16 2.8
color 0.31 0.15 0.06
}
Block {
position 9.55 1.20 -1.55
size 1.75 0.18 2.62
color 0.83 0.76 0.60
}
Block {
position 9.55 1.34 -2.45
size 1.30 0.15 0.45
color 0.91 0.86 0.73
}
Block {
position 8.80 0.85 -2.70
size 0.14 0.40 0.14
color 0.25 0.11 0.04
}
Block {
position 10.30 0.85 -2.70
size 0.14 0.40 0.14
color 0.25 0.11 0.04
}
Block {
position 8.80 0.85 -0.40
size 0.14 0.40 0.14
color 0.25 0.11 0.04
}
Block {
position 10.30 0.85 -0.40
size 0.14 0.40 0.14
color 0.25 0.11 0.04
}
# Rear courtyard raised planting pedestal.
Block {
position 0 0.86 -11.25
size 1.45 0.34 1.45
color 0.86 0.78 0.62
}
Block {
position 0 1.10 -11.25
size 1.15 0.14 1.15
color 0.63 0.27 0.16
}
Planter { position 0 1.17 -11.25 }
# Courtyard and entrance planting.
Planter { position -3.45 0.71 -4.15 }
Planter { position 3.45 0.71 -4.15 }
Planter { position -3.45 0.71 6.05 }
Planter { position 3.45 0.71 6.05 }
Planter { position -11.5 0.71 15.05 }
Planter { position 11.5 0.71 15.05 }
# Low compound walls, with an open entrance.
Block {
position -15.8 0.62 1
size 0.30 1.24 37
color 0.77 0.67 0.49
}
Block {
position 15.8 0.62 1
size 0.30 1.24 37
color 0.77 0.67 0.49
}
Block {
position 0 0.62 -17.5
size 31.9 1.24 0.30
color 0.77 0.67 0.49
}
Block {
position -10 0.62 19.5
size 11.6 1.24 0.30
color 0.77 0.67 0.49
}
Block {
position 10 0.62 19.5
size 11.6 1.24 0.30
color 0.77 0.67 0.49
}
# Entrance gateposts.
Block {
position -4.15 0.98 19.5
size 0.70 1.96 0.70
color 0.88 0.78 0.59
}
Block {
position 4.15 0.98 19.5
size 0.70 1.96 0.70
color 0.88 0.78 0.59
}
Block {
position -4.15 2.02 19.5
size 0.88 0.16 0.88
color 0.49 0.25 0.14
}
Block {
position 4.15 2.02 19.5
size 0.88 0.16 0.88
color 0.49 0.25 0.14
}
#VRML V2.0 utf8
# Chettinad House - Central Courtyard & Pillar Architecture
# --- Viewpoints & Navigation ---
Viewpoint {
position 0 6 25
orientation 1 0 0 -0.15
description "Front Exterior View"
}
Viewpoint {
position 0 3 0
description "Inside the Muttram (Courtyard)"
}
NavigationInfo {
type [ "WALK", "EXAMINE", "ANY" ]
headlight TRUE
avatarSize [ 0.25, 1.6, 0.75 ]
}
# --- Main Flooring & Thinnai (Red Oxide Raised Corridors) ---
Group {
children [
# Left Corridor Floor
Transform {
translation -7 0.5 0
children [ Shape { appearance DEF RedOxide Appearance { material Material { diffuseColor 0.7 0.25 0.15 } } geometry Box { size 6 1 20 } } ]
}
# Right Corridor Floor
Transform {
translation 7 0.5 0
children [ Shape { appearance USE RedOxide geometry Box { size 6 1 20 } } ]
}
# Back Corridor Floor
Transform {
translation 0 0.5 -7
children [ Shape { appearance USE RedOxide geometry Box { size 8 1 6 } } ]
}
# Front Corridor Floor
Transform {
translation 0 0.5 7
children [ Shape { appearance USE RedOxide geometry Box { size 8 1 6 } } ]
}
# Sunken Muttram (Courtyard Stone Floor)
Transform {
translation 0 0.1 0
children [
Shape {
appearance Appearance { material Material { diffuseColor 0.5 0.5 0.5 } }
geometry Box { size 8 0.2 8 }
}
]
}
]
}
# --- Outer White Lime-Plastered Walls ---
Group {
children [
# Left Wall
Transform { translation -9.5 4 0 children [ Shape { appearance DEF WhiteWall Appearance { material Material { diffuseColor 0.9 0.9 0.85 } } geometry Box { size 1 6 20 } } ] }
# Right Wall
Transform { translation 9.5 4 0 children [ Shape { appearance USE WhiteWall geometry Box { size 1 6 20 } } ] }
# Back Wall
Transform { translation 0 4 -9.5 children [ Shape { appearance USE WhiteWall geometry Box { size 18 6 1 } } ] }
# Front Walls (With Doorway Cutout)
Transform { translation -6.5 4 9.5 children [ Shape { appearance USE WhiteWall geometry Box { size 7 6 1 } } ] }
Transform { translation 6.5 4 9.5 children [ Shape { appearance USE WhiteWall geometry Box { size 7 6 1 } } ] }
Transform { translation 0 6 9.5 children [ Shape { appearance USE WhiteWall geometry Box { size 6 2 1 } } ] } # Above door
# Ornate Wooden Main Door (Front)
Transform {
translation 0 2.5 9.5
children [
Shape {
appearance Appearance { material Material { diffuseColor 0.2 0.1 0.05 } }
geometry Box { size 5 4 0.2 }
}
]
}
]
}
# --- Burma Teak Pillars with Stone Bases ---
# Define one master pillar, then replicate it to save code.
DEF ChettinadPillar Transform {
children [
# Stone carved base
Transform {
translation 0 1.5 0
children [ Shape { appearance Appearance { material Material { diffuseColor 0.4 0.4 0.4 } } geometry Box { size 0.6 1 0.6 } } ]
}
# Turned wooden shaft
Transform {
translation 0 3.5 0
children [ Shape { appearance DEF TeakWood Appearance { material Material { diffuseColor 0.4 0.2 0.05 } } geometry Cylinder { radius 0.2 height 3 } } ]
}
# Fluted wooden capital
Transform {
translation 0 5.25 0
children [ Shape { appearance USE TeakWood geometry Box { size 0.8 0.5 0.8 } } ]
}
]
}
# Placing Pillars around the edge of the 8x8 courtyard hole (at radius ±4)
Transform { translation -4 0 -4 children [ USE ChettinadPillar ] } # Back Left
Transform { translation 4 0 -4 children [ USE ChettinadPillar ] } # Back Right
Transform { translation -4 0 4 children [ USE ChettinadPillar ] } # Front Left
Transform { translation 4 0 4 children [ USE ChettinadPillar ] } # Front Right
Transform { translation 0 0 -4 children [ USE ChettinadPillar ] } # Back Center
Transform { translation 0 0 4 children [ USE ChettinadPillar ] } # Front Center
Transform { translation -4 0 0 children [ USE ChettinadPillar ] } # Left Center
Transform { translation 4 0 0 children [ USE ChettinadPillar ] } # Right Center
# --- Inward Sloping Terracotta Roof ---
# Slopes from the high outer walls down towards the low inner courtyard pillars
Shape {
appearance Appearance {
material Material { diffuseColor 0.65 0.25 0.15 } # Terracotta Clay
}
geometry IndexedFaceSet {
solid FALSE # Ensures the roof is visible from both inside and outside
coord Coordinate {
point [
# Outer high roof edges (resting on walls at Y=7)
-10.5 7.5 10.5, # 0: Outer Front-Left
10.5 7.5 10.5, # 1: Outer Front-Right
10.5 7.5 -10.5, # 2: Outer Back-Right
-10.5 7.5 -10.5, # 3: Outer Back-Left
# Inner low roof edges (resting on pillars at Y=5.7 with overhang)
-3.5 5.5 3.5, # 4: Inner Front-Left
3.5 5.5 3.5, # 5: Inner Front-Right
3.5 5.5 -3.5, # 6: Inner Back-Right
-3.5 5.5 -3.5 # 7: Inner Back-Left
]
}
coordIndex [
0, 1, 5, 4, -1, # Front roof panel
1, 2, 6, 5, -1, # Right roof panel
2, 3, 7, 6, -1, # Back roof panel
3, 0, 4, 7, -1 # Left roof panel
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment