This is another ship from The Dream, similar to the Spirit Walk. This one has less of a backstory; let's just say it's supposed to be "only" an armed merchant, but rivals many dedicated warships. Its captain and owner is very successful, and doesn't fool around.
Out-of-universe, the Venerator was devised by GrayWolf and features in many Dream stories, with two different captains.
OpenSCAD source code, first version as of April 2024:
module MainBody() {
rotate ([-90, 0, 0])
cylinder (h = 120, d = 10, center = true);
translate ([0, 60, 0]) sphere (d = 10);
translate ([0, -60, 0]) sphere (d = 10);
}
// Central section
color ("silver") hull () {
translate ([5, 0, 0]) MainBody();
translate ([-5, 0, 0]) MainBody();
}
color ("gray") {
translate ([0, -15, 0]) cube ([1, 75, 15], center=true);
}
module CargoBay () {
cube ([10, 14, 19], center = true);
cube ([9, 15, 19], center = true);
cube ([9, 14, 20], center = true);
}
// Cargo bays
color ("darkseagreen") {
translate ([0, 10, 0]) CargoBay();
translate ([0, -10, 0]) CargoBay();
translate ([0, -30, 0]) CargoBay();
}
module Turret () {
color ("silver") {
cylinder (h = 2.5, d = 6, center = true, $fn=30);
cylinder (h = 3.5, d = 3, center = true, $fn=15);
}
color ("gray") rotate ([-90, 0, 0])
cylinder (h = 6, d = 1);
}
// Port
translate ([-10, 0, 0]) rotate ([0, 0, 90]) Turret();
translate ([-10, 45, 0]) rotate ([0, 0, 45]) Turret();
translate ([-10, -45, 0]) rotate ([0, 0, 135]) Turret();
// Starboard
translate ([10, 0, 0]) rotate ([0, 0, -90]) Turret();
translate ([10, 45, 0]) rotate ([0, 0, -45]) Turret();
translate ([10, -45, 0]) rotate ([0, 0, -135]) Turret();
module DivingPlane () {
color ("gray") scale([0.2, 1, 1])
cylinder (h = 5, r1 = 3, r2 = 2);
}
// Fore
translate ([7.5, 70, 0])
rotate ([0, 90, 0]) DivingPlane();
translate ([-7.5, 70, 0])
rotate ([0, -90, 0]) DivingPlane();
// Aft
translate ([7.5, -70, 0])
rotate ([0, 90, 0]) DivingPlane();
translate ([-7.5, -70, 0])
rotate ([0, -90, 0]) DivingPlane();
module BridgeWindowHole () {
translate ([0, 7.5, 0])
cube ([1.5, 5, 2], center = true);
}
// Front section
union () {
difference () {
color ("silver") hull () {
translate ([0, 30, 7.5])
sphere (d = 15, $fn=30);
translate ([0, 30, -7.5])
sphere (d = 15, $fn=30);
translate ([0, 85, 7.5])
sphere (d = 15, $fn=30);
translate ([0, 75, -7.5])
sphere (d = 15, $fn=30);
}
// Open decks
color ("darkseagreen") translate ([0, 56, 6])
cube ([18, 36, 2], center = true);
color ("darkseagreen") translate ([0, 53, -6])
cube ([18, 30, 2], center = true);
// Bridge windows holes
color ("gray") translate ([0, 85, 7.5]) {
BridgeWindowHole();
rotate ([0, 0, 15])
BridgeWindowHole();
rotate ([0, 0, -15])
BridgeWindowHole();
rotate ([0, 0, 30])
BridgeWindowHole();
rotate ([0, 0, -30])
BridgeWindowHole();
}
}
// Bridge windows
color ("turquoise") translate ([0, 85, 7.5])
sphere (d = 14, $fn=30);
// Inner hull
color ("silver") translate ([0, 55, 0])
cube ([12, 40, 20], center = true);
// Exposed bulkheads
color ("darkseagreen") translate ([0, 45, 0])
cube ([14, 1, 15], center = true);
color ("darkseagreen") translate ([0, 55, 0])
cube ([14, 1, 15], center = true);
color ("darkseagreen") translate ([0, 65, 0])
cube ([14, 1, 15], center = true);
// Port
color ("silver") translate ([-7.5, 77, 3])
scale ([1, 3, 1]) sphere (d = 2, $fn = 10);
color ("silver") translate ([-7.5, 73, -3])
scale ([1, 3, 1]) sphere (d = 2, $fn = 10);
// Starboard
color ("silver") translate ([7.5, 77, 3])
scale ([1, 3, 1]) sphere (d = 2, $fn = 10);
color ("silver") translate ([7.5, 73, -3])
scale ([1, 3, 1]) sphere (d = 2, $fn = 10);
}
module Gun () {
color ("silver") rotate ([0, 90, 0]) {
cylinder (h = 5, d = 4.5, center = true, $fn=15);
cylinder (h = 6, d = 3, center = true, $fn=15);
}
color ("gray") {
translate ([-1, 0, 0]) cylinder (h = 5, d = 0.8);
translate ([1, 0, 0]) cylinder (h = 5, d = 0.8);
}
}
translate ([0, 25, 12]) rotate ([45, 0, 0]) Gun();
translate ([0, 25, -12]) rotate ([135, 0, 0]) Gun();
translate ([0, 80, -12]) rotate ([-135, 0, 0]) Gun();
// Rear section
color ("silver") {
hull () {
translate ([0, -50, 7.5]) sphere (d = 15, $fn=30);
translate ([0, -50, -7.5]) sphere (d = 15, $fn=30);
translate ([0, -80, 7.5]) sphere (d = 15, $fn=30);
translate ([0, -80, -7.5]) sphere (d = 15, $fn=30);
}
translate ([0, -80, 3])
cylinder (h = 3, d = 18, center = true, $fn=30);
translate ([0, -80, -3])
cylinder (h = 3, d = 18, center = true, $fn=30);
}
module Thruster () {
rotate ([90, 0, 0]) {
hull () {
cylinder (h = 30, d = 5, center=true, $fn = 10);
cylinder (h = 40, d = 3, center=true, $fn = 10);
}
}
}
color ("silver") {
translate ([-7.5, -70, 10]) Thruster();
translate ([7.5, -70, 10]) Thruster();
translate ([-7.5, -70, -10]) Thruster();
translate ([7.5, -70, -10]) Thruster();
}
Note: the Venerator isn't mine. Source code is provided for entertainment and education.