Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save pleabargain/19c85bc3bb520c94c088816251ea4222 to your computer and use it in GitHub Desktop.

Select an option

Save pleabargain/19c85bc3bb520c94c088816251ea4222 to your computer and use it in GitHub Desktop.
gemini generated internal combustion engine SVG
Display the source blob
Display the rendered blob
Raw
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600">
<defs>
<!-- Metal Gradients -->
<linearGradient id="blockMetal" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#9ea7aa" />
<stop offset="20%" stop-color="#cfd8dc" />
<stop offset="50%" stop-color="#eceff1" />
<stop offset="80%" stop-color="#cfd8dc" />
<stop offset="100%" stop-color="#9ea7aa" />
</linearGradient>
<linearGradient id="cutaway" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#78909c" />
<stop offset="100%" stop-color="#546e7a" />
</linearGradient>
<linearGradient id="pistonGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#b0bec5" />
<stop offset="50%" stop-color="#eceff1" />
<stop offset="100%" stop-color="#b0bec5" />
</linearGradient>
<linearGradient id="rodGrad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#7f8c8d" />
<stop offset="50%" stop-color="#bdc3c7" />
<stop offset="100%" stop-color="#7f8c8d" />
</linearGradient>
<!-- Combustion Gradient -->
<radialGradient id="combustion" cx="50%" cy="20%" r="80%" fx="50%" fy="20%">
<stop offset="0%" stop-color="#fff9c4" />
<stop offset="20%" stop-color="#ffeb3b" />
<stop offset="50%" stop-color="#ff9800" />
<stop offset="90%" stop-color="#f44336" />
<stop offset="100%" stop-color="#d32f2f" stop-opacity="0.8" />
</radialGradient>
<!-- Coolant Water -->
<pattern id="waterPattern" x="0" y="0" width="10" height="10" patternUnits="userSpaceOnUse">
<rect width="10" height="10" fill="#29b6f6" />
<circle cx="5" cy="5" r="2" fill="#4fc3f7" />
</pattern>
<!-- Shadow -->
<filter id="dropShadow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
<feOffset dx="2" dy="2" result="offsetblur"/>
<feComponentTransfer>
<feFuncA type="linear" slope="0.3"/>
</feComponentTransfer>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</defs>
<!-- Background -->
<rect width="800" height="600" fill="#f5f5f5" />
<!-- Main Diagram Group -->
<g transform="translate(250, 50)">
<!-- Crankshaft (Rear/Main Bearing) -->
<circle cx="150" cy="400" r="40" fill="#546e7a" stroke="#37474f" stroke-width="2" />
<!-- Connecting Rod (Behind Piston) -->
<!-- Angled slightly to suggest rotation -->
<path d="M150,400 L150,280" stroke="#7f8c8d" stroke-width="30" stroke-linecap="round" />
<path d="M135,400 L135,280 L165,280 L165,400 Z" fill="url(#rodGrad)" stroke="#546e7a" stroke-width="1" />
<!-- Crank Counterweight -->
<path d="M150,400 L110,460 A50,50 0 0,0 190,460 Z" fill="#607d8b" stroke="#455a64" stroke-width="2" opacity="0.9" />
<circle cx="150" cy="400" r="15" fill="#cfd8dc" />
<!-- Cylinder Block Cutaway -->
<path d="M50,150 L250,150 L250,400 L300,400 L300,100 L0,100 L0,400 L50,400 Z" fill="url(#cutaway)" stroke="#37474f" stroke-width="2" filter="url(#dropShadow)" />
<!-- Cylinder Liner/Bore Surface -->
<rect x="50" y="150" width="200" height="250" fill="#cfd8dc" opacity="0.3" />
<!-- Coolant Channels (Water Jackets) -->
<path d="M10,180 L40,180 L40,350 L10,350 Z" fill="url(#waterPattern)" stroke="#0277bd" stroke-width="1" />
<path d="M260,180 L290,180 L290,350 L260,350 Z" fill="url(#waterPattern)" stroke="#0277bd" stroke-width="1" />
<!-- Piston -->
<g transform="translate(0, 30)"> <!-- Piston Position -->
<rect x="55" y="220" width="190" height="120" rx="5" fill="url(#pistonGrad)" stroke="#546e7a" stroke-width="2" />
<!-- Piston Rings -->
<line x1="55" y1="235" x2="245" y2="235" stroke="#37474f" stroke-width="2" />
<line x1="55" y1="245" x2="245" y2="245" stroke="#37474f" stroke-width="2" />
<line x1="55" y1="255" x2="245" y2="255" stroke="#37474f" stroke-width="2" />
<!-- Wrist Pin -->
<circle cx="150" cy="280" r="15" fill="#78909c" stroke="#455a64" stroke-width="2" />
<circle cx="150" cy="280" r="8" fill="#cfd8dc" />
</g>
<!-- Combustion Chamber / Explosion -->
<path d="M55,150 L245,150 L245,250 L55,250 Z" fill="url(#combustion)" opacity="0.9" />
<!-- Cylinder Head -->
<path d="M0,100 L300,100 L300,20 L0,20 Z" fill="url(#cutaway)" stroke="#37474f" stroke-width="2" filter="url(#dropShadow)" />
<!-- Intake Port -->
<path d="M0,40 L80,40 L100,100 L60,100 Z" fill="#eceff1" stroke="#546e7a" stroke-width="1" />
<!-- Exhaust Port -->
<path d="M300,40 L220,40 L200,100 L240,100 Z" fill="#eceff1" stroke="#546e7a" stroke-width="1" />
<!-- Valves -->
<!-- Intake Valve (Closed) -->
<g transform="translate(80, 50)">
<rect x="-3" y="-40" width="6" height="80" fill="#cfd8dc" />
<path d="M-15,40 L15,40 L10,50 L-10,50 Z" fill="#90a4ae" stroke="#546e7a" stroke-width="1" />
<!-- Spring -->
<path d="M-10,-30 L10,-30 L10,10 L-10,10 Z" fill="none" stroke="#37474f" stroke-width="2" stroke-dasharray="4,2" />
</g>
<!-- Exhaust Valve (Closed) -->
<g transform="translate(220, 50)">
<rect x="-3" y="-40" width="6" height="80" fill="#cfd8dc" />
<path d="M-15,40 L15,40 L10,50 L-10,50 Z" fill="#90a4ae" stroke="#546e7a" stroke-width="1" />
<!-- Spring -->
<path d="M-10,-30 L10,-30 L10,10 L-10,10 Z" fill="none" stroke="#37474f" stroke-width="2" stroke-dasharray="4,2" />
</g>
<!-- Camshafts -->
<circle cx="80" cy="10" r="15" fill="#b0bec5" stroke="#455a64" stroke-width="2" />
<path d="M80,10 L70,25 L90,25 Z" fill="#b0bec5" stroke="#455a64" stroke-width="2" /> <!-- Lobe -->
<circle cx="220" cy="10" r="15" fill="#b0bec5" stroke="#455a64" stroke-width="2" />
<path d="M220,10 L210,25 L230,25 Z" fill="#b0bec5" stroke="#455a64" stroke-width="2" /> <!-- Lobe -->
<!-- Spark Plug -->
<g transform="translate(150, 80)">
<rect x="-6" y="-40" width="12" height="50" fill="#ffffff" stroke="#37474f" stroke-width="1" />
<rect x="-7" y="-10" width="14" height="10" fill="#78909c" /> <!-- Hex nut -->
<path d="M-2,10 L-2,20" stroke="#37474f" stroke-width="2" /> <!-- Electrode -->
<path d="M-5,20 L5,20" stroke="#37474f" stroke-width="2" /> <!-- Ground strap -->
<!-- Spark -->
<circle cx="0" cy="18" r="4" fill="#ffff00" filter="url(#dropShadow)" />
</g>
<!-- Valve Cover -->
<path d="M10,10 L290,10 L280,-10 L20,-10 Z" fill="#546e7a" opacity="0.8" />
</g>
<!-- Labels Layer -->
<g font-family="Arial, sans-serif" font-size="14" fill="#333">
<!-- Camshaft Label -->
<text x="50" y="40" text-anchor="end" font-weight="bold">Camshaft</text>
<line x1="55" y1="35" x2="320" y2="60" stroke="#333" stroke-width="1" />
<circle cx="320" cy="60" r="3" fill="#333" />
<!-- Intake Valve Label -->
<text x="50" y="80" text-anchor="end" font-weight="bold">Intake Valve</text>
<line x1="55" y1="75" x2="330" y2="100" stroke="#333" stroke-width="1" />
<circle cx="330" cy="100" r="3" fill="#333" />
<!-- Spark Plug Label -->
<text x="400" y="30" text-anchor="middle" font-weight="bold">Spark Plug</text>
<line x1="400" y1="35" x2="400" y2="90" stroke="#333" stroke-width="1" />
<circle cx="400" cy="90" r="3" fill="#333" />
<!-- Combustion Chamber Label -->
<text x="650" y="200" text-anchor="start" font-weight="bold">Combustion Chamber</text>
<line x1="645" y1="195" x2="450" y2="220" stroke="#333" stroke-width="1" />
<circle cx="450" cy="220" r="3" fill="#333" />
<!-- Piston Label -->
<text x="50" y="300" text-anchor="end" font-weight="bold">Piston</text>
<line x1="55" y1="295" x2="300" y2="300" stroke="#333" stroke-width="1" />
<circle cx="300" cy="300" r="3" fill="#333" />
<!-- Coolant Jacket Label -->
<text x="50" y="230" text-anchor="end" font-weight="bold">Coolant Jacket</text>
<line x1="55" y1="225" x2="270" y2="250" stroke="#333" stroke-width="1" />
<circle cx="270" cy="250" r="3" fill="#333" />
<!-- Connecting Rod Label -->
<text x="650" y="350" text-anchor="start" font-weight="bold">Connecting Rod</text>
<line x1="645" y1="345" x2="410" y2="380" stroke="#333" stroke-width="1" />
<circle cx="410" cy="380" r="3" fill="#333" />
<!-- Crankshaft Label -->
<text x="650" y="450" text-anchor="start" font-weight="bold">Crankshaft</text>
<line x1="645" y1="445" x2="400" y2="450" stroke="#333" stroke-width="1" />
<circle cx="400" cy="450" r="3" fill="#333" />
<!-- Exhaust Port Label -->
<text x="650" y="100" text-anchor="start" font-weight="bold">Exhaust Port</text>
<line x1="645" y1="95" x2="480" y2="120" stroke="#333" stroke-width="1" />
<circle cx="480" cy="120" r="3" fill="#333" />
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment