diff --git a/compact/LGC.xml b/compact/LGC.xml
index 6865beeef83c169e77f6d183a16bbfcaa23ec39a..531ece8fa4acb1709dc602022e1e685685f56878 100644
--- a/compact/LGC.xml
+++ b/compact/LGC.xml
@@ -1,7 +1,7 @@
 <lccdd>
 
 <info name="LGC" title="Light Gas Cherenkov"
-  author="C. Peng"
+  author="Chao Peng"
   url="https://eicweb.phy.anl.gov/EIC/detectors/solid/-/blob/master/compact/LGC.xml"
   status="development"
   version="$Id: compact/LGC.xml v1.0 2024-05-18$">
@@ -88,11 +88,10 @@
   name="LightGasCherenkov"
   type="SoLID_GasCherenkov"
   readout="LightGasCherenkovHits"
-  numsides="24"
-  vis="RedVis">
+  numsides="24">
 
   <placement x="LGC_x" y="LGC_y" z0="LGC_z" />
-  <tank radiator="N2Optical">
+  <tank radiator="N2Optical" vis="LGCTankVis">
     <comment> snout </comment>
     <segment rmin1="48.7*cm" rmax1="120*cm" rmin2="59.7*cm" rmax2="130*cm" length="97*cm" />
     <segment rmin1="59.7*cm" rmax1="130*cm" rmin2="61.5*cm" rmax2="145*cm" length="16*cm" />
@@ -106,7 +105,7 @@
     mirror is the intersection between two spherical shell
   </comment>
   <mirrors>
-    <piece id="1" material="PyrexGlassOptical" surface="MirrorOpticalSurface">
+    <piece id="1" material="PyrexGlassOptical" surface="MirrorOpticalSurface" vis="LGCMirrorVis">
       <placement x="LGC_inner_shell_x" y="LGC_inner_shell_y" z="LGC_inner_shell_z - LGC_z"/>
       <shell rmin="LGC_inner_shell_rmin" rmax="LGC_inner_shell_rmax" theta0="0" dtheta="90*degree" phi0="0" dphi="360*degree"/>
       <wedge dx1="LGC_inner_wedge_dx1" dx2="LGC_inner_wedge_dx2"
@@ -114,7 +113,7 @@
         x="LGC_inner_wedge_x" y="LGC_inner_wedge_y" z="LGC_inner_wedge_z"
         rotx="90*degree" roty="0" rotz="0"/>
     </piece>
-    <piece id="2" material="PyrexGlassOptical" surface="MirrorOpticalSurface">
+    <piece id="2" material="PyrexGlassOptical" surface="MirrorOpticalSurface" vis="LGCMirrorVis">
       <placement x="LGC_outer_shell_x" y="LGC_outer_shell_y" z="LGC_outer_shell_z - LGC_z"/>
       <shell rmin="LGC_outer_shell_rmin" rmax="LGC_outer_shell_rmax" theta0="0" dtheta="90*degree" phi0="0" dphi="360*degree"/>
       <wedge dx1="LGC_outer_wedge_dx1" dx2="LGC_outer_wedge_dx2"
@@ -128,12 +127,12 @@
     Light Gas Cherenkov: Winston cones
   </comment>
   <winston_cone material="PyrexGlassOptical" surface="MirrorOpticalSurface">
-    <placement x="0*cm" y="240*cm" z="245*cm - LGC_z"/>
-    <rotation x="0" y="0" z="0"/>
+    <placement x="0*cm" y="240*cm" z="245*cm - LGC_z" />
+    <rotation x="65*degree" y="0" z="0" />
     <comment> TODO: implement PMT material layers </comment>
-    <pmt_array dx="16*cm" dy="16*cm" sensitive="yes"/>
-    <cone thickness="4*mm" rmin="7.0*cm" rmax="21.5*cm" length="30.*cm"/>
-    <shield material="Lead" thickness="1.*cm" radius="11.53*cm" length="15.*cm" shift_z="-1.66*cm"/>
+    <pmt_array dx="16*cm" dy="16*cm" sensitive="yes" vis="LGCPMTVis" />
+    <cone thickness="4*mm" rmin="7.0*cm" rmax="21.5*cm" length="30.*cm" vis="LGCConeVis" />
+    <shield material="Lead" thickness="1.*cm" radius="11.53*cm" length="8.*cm" shift_z="1.5*cm" vis="LGCShieldVis" />
   </winston_cone>
 </detector>
 <comment>
diff --git a/compact/colors.xml b/compact/colors.xml
index 50adcd80d289021f40a6a4cdbaff703878375649..cce814f436b3b4ad19585311ae153394874b3f25 100644
--- a/compact/colors.xml
+++ b/compact/colors.xml
@@ -1,42 +1,156 @@
 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
-<!-- Copyright (C) 2022 Sylvester Joosten, Whitney Armstrong -->
+<!-- Copyright (C) 2024 Chao Peng -->
 
 <display>
-
   <comment>
-    Colors tweaked to be displayable by geoViewer
+    color codes from CSS
   </comment>
-  <vis name="AnlGreen"        alpha="1" r="100/256" g="200/256" b="0/256"/>
-  <vis name="AnlViolet"       alpha="1" r="100/256" g="0/256"   b="150/256"/>
-  <vis name="AnlProcess_Blue" alpha="1" r="0/256"   g="100/256" b="202/256"/>
-  <vis name="AnlOrange"       alpha="1" r="255/256" g="121/256" b="0"/>
-  <vis name="AnlRed"          alpha="1" r="205/256" g="45/256 " b="45/256"/>
-  <vis name="AnlGold"         alpha="1" r="248/256" g="188/256" b="0/256"/>
-  <vis name="AnlBlue"         alpha="1" r="0/256"   g="96/256"  b="156/256"/>
-  <vis name="AnlTeal"         alpha="1" r="0/256"   g="161/256" b="156/256"/>
-  <vis name="AnlGray"         alpha="1" r="102/256" g="102/256" b="102/256"/>
-  <vis name="AnlLight_Gray"   alpha="1" r="209/256" g="209/256" b="209/256"/>
-  <vis name="AnlLightGray"    ref="AnlLight_Gray" />
-  <!-- off-white (or white) don't work! -->
-  <!--vis name="AnlOff_White"    alpha="1" r="242/256" g="242/256" b="242/256"/-->
-  <vis name="AnlDarkRed"      alpha="1" r="161/256" g="45/256"  b="45/256"/>
-  <vis name="AnlDarkGreen"    alpha="1" r="0"       g="110/256" b="50/256"/>
-  <vis name="AnlDarkBlue"     alpha="1" r="45/256"   g="45/256"  b="110/256"/>
-  <vis name="AnlDelta_Red"    ref="AnlDarkRed"/>
-  <vis name="AnlDelta_Green"    ref="AnlDarkGreen"/>
-  <vis name="AnlDelta_Blue"    ref="AnlDarkBlue"/>
-
-  <vis name="GreenVis"       alpha="1.0"  r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
-  <vis name="RedVis"         alpha="0.5"  r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/>
-  <vis name="BlueVis"        alpha="0.5"  r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
-  <vis name="OrangeVis"      alpha="1.0"  r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/>
-  <vis name="RedGreenVis"    alpha="0.5"  r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/>
-  <vis name="BlueGreenVis"   alpha="0.5"  r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
-  <vis name="PurpleVis"      alpha="0.5"  r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/>
-  <vis name="DoubleRedG"     alpha="0.5"  r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/>
-  <vis name="RBG015"         alpha="0.5"  r= "0.0" g=".2"  b="1.0" showDaughters="true" visible="true"/>
-  <vis name="RBG510"         alpha="0.5"  r= "1.0" g=".2"  b="0.0" showDaughters="true" visible="true"/>
-  <vis name="RBG"            alpha="0.5"  r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/>
-  <vis name="SteelVis"       alpha="0.05"  r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
-  <vis name="GrayVis"        alpha="0.5"  r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/>
+  <vis name="aliceblue"               alpha="1" r="240/255" g="248/255" b="255/255" />
+  <vis name="antiquewhite"            alpha="1" r="250/255" g="235/255" b="215/255" />
+  <vis name="aqua"                    alpha="1" r="0/255"   g="255/255" b="255/255" />
+  <vis name="aquamarine"              alpha="1" r="127/255" g="255/255" b="212/255" />
+  <vis name="azure"                   alpha="1" r="240/255" g="255/255" b="255/255" />
+  <vis name="beige"                   alpha="1" r="245/255" g="245/255" b="220/255" />
+  <vis name="bisque"                  alpha="1" r="255/255" g="228/255" b="196/255" />
+  <vis name="black"                   alpha="1" r="0/255"   g="0/255"   b="0/255"   />
+  <vis name="blanchedalmond"          alpha="1" r="255/255" g="235/255" b="205/255" />
+  <vis name="blue"                    alpha="1" r="0/255"   g="0/255"   b="255/255" />
+  <vis name="blueviolet"              alpha="1" r="138/255" g="43/255"  b="226/255" />
+  <vis name="brown"                   alpha="1" r="165/255" g="42/255"  b="42/255"  />
+  <vis name="burlywood"               alpha="1" r="222/255" g="184/255" b="135/255" />
+  <vis name="cadetblue"               alpha="1" r="95/255"  g="158/255" b="160/255" />
+  <vis name="chartreuse"              alpha="1" r="127/255" g="255/255" b="0/255"   />
+  <vis name="chocolate"               alpha="1" r="210/255" g="105/255" b="30/255"  />
+  <vis name="coral"                   alpha="1" r="255/255" g="127/255" b="80/255"  />
+  <vis name="cornflowerblue"          alpha="1" r="100/255" g="149/255" b="237/255" />
+  <vis name="cornsilk"                alpha="1" r="255/255" g="248/255" b="220/255" />
+  <vis name="crimson"                 alpha="1" r="220/255" g="20/255"  b="60/255"  />
+  <vis name="cyan"                    alpha="1" r="0/255"   g="255/255" b="255/255" />
+  <vis name="darkblue"                alpha="1" r="0/255"   g="0/255"   b="139/255" />
+  <vis name="darkcyan"                alpha="1" r="0/255"   g="139/255" b="139/255" />
+  <vis name="darkgoldenrod"           alpha="1" r="184/255" g="134/255" b="11/255"  />
+  <vis name="darkgray"                alpha="1" r="169/255" g="169/255" b="169/255" />
+  <vis name="darkgreen"               alpha="1" r="0/255"   g="100/255" b="0/255"   />
+  <vis name="darkgrey"                alpha="1" r="169/255" g="169/255" b="169/255" />
+  <vis name="darkkhaki"               alpha="1" r="189/255" g="183/255" b="107/255" />
+  <vis name="darkmagenta"             alpha="1" r="139/255" g="0/255"   b="139/255" />
+  <vis name="darkolivegreen"          alpha="1" r="85/255"  g="107/255" b="47/255"  />
+  <vis name="darkorange"              alpha="1" r="255/255" g="140/255" b="0/255"   />
+  <vis name="darkorchid"              alpha="1" r="153/255" g="50/255"  b="204/255" />
+  <vis name="darkred"                 alpha="1" r="139/255" g="0/255"   b="0/255"   />
+  <vis name="darksalmon"              alpha="1" r="233/255" g="150/255" b="122/255" />
+  <vis name="darkseagreen"            alpha="1" r="143/255" g="188/255" b="143/255" />
+  <vis name="darkslateblue"           alpha="1" r="72/255"  g="61/255"  b="139/255" />
+  <vis name="darkslategray"           alpha="1" r="47/255"  g="79/255"  b="79/255"  />
+  <vis name="darkslategrey"           alpha="1" r="47/255"  g="79/255"  b="79/255"  />
+  <vis name="darkturquoise"           alpha="1" r="0/255"   g="206/255" b="209/255" />
+  <vis name="darkviolet"              alpha="1" r="148/255" g="0/255"   b="211/255" />
+  <vis name="deeppink"                alpha="1" r="255/255" g="20/255"  b="147/255" />
+  <vis name="deepskyblue"             alpha="1" r="0/255"   g="191/255" b="255/255" />
+  <vis name="dimgray"                 alpha="1" r="105/255" g="105/255" b="105/255" />
+  <vis name="dimgrey"                 alpha="1" r="105/255" g="105/255" b="105/255" />
+  <vis name="dodgerblue"              alpha="1" r="30/255"  g="144/255" b="255/255" />
+  <vis name="firebrick"               alpha="1" r="178/255" g="34/255"  b="34/255"  />
+  <vis name="floralwhite"             alpha="1" r="255/255" g="250/255" b="240/255" />
+  <vis name="forestgreen"             alpha="1" r="34/255"  g="139/255" b="34/255"  />
+  <vis name="fuchsia"                 alpha="1" r="255/255" g="0/255"   b="255/255" />
+  <vis name="gainsboro"               alpha="1" r="220/255" g="220/255" b="220/255" />
+  <vis name="ghostwhite"              alpha="1" r="248/255" g="248/255" b="255/255" />
+  <vis name="gold"                    alpha="1" r="255/255" g="215/255" b="0/255"   />
+  <vis name="goldenrod"               alpha="1" r="218/255" g="165/255" b="32/255"  />
+  <vis name="gray"                    alpha="1" r="128/255" g="128/255" b="128/255" />
+  <vis name="green"                   alpha="1" r="0/255"   g="128/255" b="0/255"   />
+  <vis name="greenyellow"             alpha="1" r="173/255" g="255/255" b="47/255"  />
+  <vis name="grey"                    alpha="1" r="128/255" g="128/255" b="128/255" />
+  <vis name="honeydew"                alpha="1" r="240/255" g="255/255" b="240/255" />
+  <vis name="hotpink"                 alpha="1" r="255/255" g="105/255" b="180/255" />
+  <vis name="indianred"               alpha="1" r="205/255" g="92/255"  b="92/255"  />
+  <vis name="indigo"                  alpha="1" r="75/255"  g="0/255"   b="130/255" />
+  <vis name="ivory"                   alpha="1" r="255/255" g="255/255" b="240/255" />
+  <vis name="khaki"                   alpha="1" r="240/255" g="230/255" b="140/255" />
+  <vis name="lavender"                alpha="1" r="230/255" g="230/255" b="250/255" />
+  <vis name="lavenderblush"           alpha="1" r="255/255" g="240/255" b="245/255" />
+  <vis name="lawngreen"               alpha="1" r="124/255" g="252/255" b="0/255"   />
+  <vis name="lemonchiffon"            alpha="1" r="255/255" g="250/255" b="205/255" />
+  <vis name="lightblue"               alpha="1" r="173/255" g="216/255" b="230/255" />
+  <vis name="lightcoral"              alpha="1" r="240/255" g="128/255" b="128/255" />
+  <vis name="lightcyan"               alpha="1" r="224/255" g="255/255" b="255/255" />
+  <vis name="lightgoldenrodyellow"    alpha="1" r="250/255" g="250/255" b="210/255" />
+  <vis name="lightgray"               alpha="1" r="211/255" g="211/255" b="211/255" />
+  <vis name="lightgreen"              alpha="1" r="144/255" g="238/255" b="144/255" />
+  <vis name="lightgrey"               alpha="1" r="211/255" g="211/255" b="211/255" />
+  <vis name="lightpink"               alpha="1" r="255/255" g="182/255" b="193/255" />
+  <vis name="lightsalmon"             alpha="1" r="255/255" g="160/255" b="122/255" />
+  <vis name="lightseagreen"           alpha="1" r="32/255"  g="178/255" b="170/255" />
+  <vis name="lightskyblue"            alpha="1" r="135/255" g="206/255" b="250/255" />
+  <vis name="lightslategray"          alpha="1" r="119/255" g="136/255" b="153/255" />
+  <vis name="lightslategrey"          alpha="1" r="119/255" g="136/255" b="153/255" />
+  <vis name="lightsteelblue"          alpha="1" r="176/255" g="196/255" b="222/255" />
+  <vis name="lightyellow"             alpha="1" r="255/255" g="255/255" b="224/255" />
+  <vis name="lime"                    alpha="1" r="0/255"   g="255/255" b="0/255"   />
+  <vis name="limegreen"               alpha="1" r="50/255"  g="205/255" b="50/255"  />
+  <vis name="linen"                   alpha="1" r="250/255" g="240/255" b="230/255" />
+  <vis name="magenta"                 alpha="1" r="255/255" g="0/255"   b="255/255" />
+  <vis name="maroon"                  alpha="1" r="128/255" g="0/255"   b="0/255"   />
+  <vis name="mediumaquamarine"        alpha="1" r="102/255" g="205/255" b="170/255" />
+  <vis name="mediumblue"              alpha="1" r="0/255"   g="0/255"   b="205/255" />
+  <vis name="mediumorchid"            alpha="1" r="186/255" g="85/255"  b="211/255" />
+  <vis name="mediumpurple"            alpha="1" r="147/255" g="112/255" b="219/255" />
+  <vis name="mediumseagreen"          alpha="1" r="60/255"  g="179/255" b="113/255" />
+  <vis name="mediumslateblue"         alpha="1" r="123/255" g="104/255" b="238/255" />
+  <vis name="mediumspringgreen"       alpha="1" r="0/255"   g="250/255" b="154/255" />
+  <vis name="mediumturquoise"         alpha="1" r="72/255"  g="209/255" b="204/255" />
+  <vis name="mediumvioletred"         alpha="1" r="199/255" g="21/255"  b="133/255" />
+  <vis name="midnightblue"            alpha="1" r="25/255"  g="25/255"  b="112/255" />
+  <vis name="mintcream"               alpha="1" r="245/255" g="255/255" b="250/255" />
+  <vis name="mistyrose"               alpha="1" r="255/255" g="228/255" b="225/255" />
+  <vis name="moccasin"                alpha="1" r="255/255" g="228/255" b="181/255" />
+  <vis name="navajowhite"             alpha="1" r="255/255" g="222/255" b="173/255" />
+  <vis name="navy"                    alpha="1" r="0/255"   g="0/255"   b="128/255" />
+  <vis name="oldlace"                 alpha="1" r="253/255" g="245/255" b="230/255" />
+  <vis name="olive"                   alpha="1" r="128/255" g="128/255" b="0/255"   />
+  <vis name="olivedrab"               alpha="1" r="107/255" g="142/255" b="35/255"  />
+  <vis name="orange"                  alpha="1" r="255/255" g="165/255" b="0/255"   />
+  <vis name="orangered"               alpha="1" r="255/255" g="69/255"  b="0/255"   />
+  <vis name="orchid"                  alpha="1" r="218/255" g="112/255" b="214/255" />
+  <vis name="palegoldenrod"           alpha="1" r="238/255" g="232/255" b="170/255" />
+  <vis name="palegreen"               alpha="1" r="152/255" g="251/255" b="152/255" />
+  <vis name="paleturquoise"           alpha="1" r="175/255" g="238/255" b="238/255" />
+  <vis name="palevioletred"           alpha="1" r="219/255" g="112/255" b="147/255" />
+  <vis name="papayawhip"              alpha="1" r="255/255" g="239/255" b="213/255" />
+  <vis name="peachpuff"               alpha="1" r="255/255" g="218/255" b="185/255" />
+  <vis name="peru"                    alpha="1" r="205/255" g="133/255" b="63/255"  />
+  <vis name="pink"                    alpha="1" r="255/255" g="192/255" b="203/255" />
+  <vis name="plum"                    alpha="1" r="221/255" g="160/255" b="221/255" />
+  <vis name="powderblue"              alpha="1" r="176/255" g="224/255" b="230/255" />
+  <vis name="purple"                  alpha="1" r="128/255" g="0/255"   b="128/255" />
+  <vis name="rebeccapurple"           alpha="1" r="102/255" g="51/255"  b="153/255" />
+  <vis name="red"                     alpha="1" r="255/255" g="0/255"   b="0/255"   />
+  <vis name="rosybrown"               alpha="1" r="188/255" g="143/255" b="143/255" />
+  <vis name="royalblue"               alpha="1" r="65/255"  g="105/255" b="225/255" />
+  <vis name="saddlebrown"             alpha="1" r="139/255" g="69/255"  b="19/255"  />
+  <vis name="salmon"                  alpha="1" r="250/255" g="128/255" b="114/255" />
+  <vis name="sandybrown"              alpha="1" r="244/255" g="164/255" b="96/255"  />
+  <vis name="seagreen"                alpha="1" r="46/255"  g="139/255" b="87/255"  />
+  <vis name="seashell"                alpha="1" r="255/255" g="245/255" b="238/255" />
+  <vis name="sienna"                  alpha="1" r="160/255" g="82/255"  b="45/255"  />
+  <vis name="silver"                  alpha="1" r="192/255" g="192/255" b="192/255" />
+  <vis name="skyblue"                 alpha="1" r="135/255" g="206/255" b="235/255" />
+  <vis name="slateblue"               alpha="1" r="106/255" g="90/255"  b="205/255" />
+  <vis name="slategray"               alpha="1" r="112/255" g="128/255" b="144/255" />
+  <vis name="slategrey"               alpha="1" r="112/255" g="128/255" b="144/255" />
+  <vis name="snow"                    alpha="1" r="255/255" g="250/255" b="250/255" />
+  <vis name="springgreen"             alpha="1" r="0/255"   g="255/255" b="127/255" />
+  <vis name="steelblue"               alpha="1" r="70/255"  g="130/255" b="180/255" />
+  <vis name="tan"                     alpha="1" r="210/255" g="180/255" b="140/255" />
+  <vis name="teal"                    alpha="1" r="0/255"   g="128/255" b="128/255" />
+  <vis name="thistle"                 alpha="1" r="216/255" g="191/255" b="216/255" />
+  <vis name="tomato"                  alpha="1" r="255/255" g="99/255"  b="71/255"  />
+  <vis name="turquoise"               alpha="1" r="64/255"  g="224/255" b="208/255" />
+  <vis name="violet"                  alpha="1" r="238/255" g="130/255" b="238/255" />
+  <vis name="wheat"                   alpha="1" r="245/255" g="222/255" b="179/255" />
+  <vis name="white"                   alpha="1" r="255/255" g="255/255" b="255/255" />
+  <vis name="whitesmoke"              alpha="1" r="245/255" g="245/255" b="245/255" />
+  <vis name="yellow"                  alpha="1" r="255/255" g="255/255" b="0/255"   />
+  <vis name="yellowgreen"             alpha="1" r="154/255" g="205/255" b="50/255"  />
 </display>
diff --git a/compact/display.xml b/compact/display.xml
index 4b54d080b325ae84abd018b72b5e6a7293041650..8171e652928ce07612e195db4e819dab1c5be2f6 100644
--- a/compact/display.xml
+++ b/compact/display.xml
@@ -1,5 +1,5 @@
 <!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
-<!-- Copyright (C) 2022 Sylvester Joosten, Whitney Armstrong, Zhenyu Ye, Christopher Dilks -->
+<!-- Copyright (C) 2024 Chao Peng -->
 
   <display>
 
@@ -11,186 +11,12 @@
     <vis name="InvisibleWithDaughters"    showDaughters="true" visible="false"/>
 
     <comment>
-      Tracking Visualizations
-    </comment>
-    <vis name="TrackerVis"        ref="AnlGold" />
-    <vis name="TrackerSupportVis" ref="AnlBlue"         visible="true"  showDaughters="true" />
-    <vis name="TrackerServiceVis" ref="AnlViolet"         showDaughters="false" />
-    <vis name="TrackerLayerVis"   ref="AnlGold"         visible="true"  showDaughters="true" />
-    <vis name="TrackerModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
-    <vis name="TrackerMPGDVis"    ref="AnlRed"          visible="true"  showDaughters="false" />
-    <comment> Visualization for Barrel MMGAS (apply to layers) and GEM endcap (apply to modules) </comment>
-    <vis name="TrackerGEMModuleVis"  ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
-    <vis name="TrackerMMGASLayerVis" ref="TrackerMPGDVis"  visible="true"  showDaughters="false" />
-
-    <vis name="VertexLayerVis"   ref="AnlGold"         visible="true"  showDaughters="true" />
-    <vis name="VertexSupportLayerVis" ref="AnlBlue"         visible="true"  showDaughters="false" />
-    <vis name="VertexSupportVis"      ref="VertexSupportLayerVis" visible="true"  showDaughters="true" />
-    <vis name="VertexModuleVis"  ref="TrackerLayerVis" visible="true"  showDaughters="false" />
-
-    <vis name="TOFVis"            ref="AnlTeal"             visible="true"  showDaughters="true"/>
-    <vis name="TOFLayerVis"       ref="TOFVis"              visible="true"  showdaughters="true"/>
-    <vis name="TOFModuleVis"      ref="TOFVis"              visible="true"  showdaughters="true"/>
-    <vis name="TOFSupportVis"     ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
-    <vis name="TOFSensorVis"      ref="TOFVis"              visible="true"  showDaughters="true"/>
-    <comment> By default don't display the barrel module details </comment>
-    <vis name="TOFBarrelModuleVis" ref="TOFVis"             visible="true"  showdaughters="true"/>
-    <comment> extra detailed vizualizations for the barrel </comment>
-    <vis name="TOFHybridVis"      ref="AnlGold"             visible="true"  showDaughters="true"/>
-    <vis name="TOFCoolingTube"    ref="AnlRed"              visible="true"  showDaughters="true"/>
-    <vis name="TOFCoolant"        ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
-    <vis name="TOFWater"          ref="AnlBlue"   visible="true"  showDaughters="true"/>
-    <vis name="TOFAluminum"        ref="AnlLightGray"   visible="true"  showDaughters="true"/>
-    <vis name="TOFActiveMat"        ref="AnlGreen"   visible="true"  showDaughters="true"/>
-    <vis name="TOFLayers"        ref="AnlBlue"   visible="true"  showDaughters="true"/>
-    <vis name="TOFSensorAndReadoutLadder"        ref="AnlGold"   visible="true"  showDaughters="true"/>
-    <vis name="TOFCSkinVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
-    <vis name="TOFCFoamVis"       ref="TrackerSupportVis"   visible="true"  showDaughters="true"/>
-    <vis name="TOFCHoneycombVis"  ref="TrackerServiceVis"   visible="true"  showDaughters="true"/>
-
-
-    <vis name="FFTrackerVis"        ref="AnlRed" />
-    <vis name="FFTrackerSupportVis" ref="AnlBlue"             visible="true"  showDaughters="false" />
-    <vis name="FFTrackerShieldingVis" ref="AnlGray"           visible="true"  showDaughters="false" />
-    <vis name="FFTrackerServiceVis" ref="AnlGold"             visible="true"  showDaughters="false" />
-    <vis name="FFTrackerLayerVis"   ref="TrackerVis"          visible="true"  showDaughters="true" />
-    <vis name="FFTrackerModuleVis"  ref="FFTrackerLayerVis"   visible="true"  showDaughters="true" />
-    <vis name="FFTrackerSurfaceVis" ref="FFTrackerLayerVis"   visible="true"  showDaughters="true" />
-    <comment> For shielded modules by default just display to module instead of 6 layers </comment>
-    <vis name="FFTrackerShieldedModuleVis" ref="FFTrackerModuleVis"   visible="true"  showDaughters="false" />
-
-    <comment>
-      Luminosity Visualisation
-    </comment>
-    <vis    name="LumiSpecCAL_ModuleVis"       ref="AnlGold"    alpha="0.5"     visible="true" showDaughters="true"/>
-    <vis    name="LumiSpecCAL_FiberVis"        ref="AnlRed"     alpha="0.8"     visible="true"/>
-    <vis    name="LumiSpecCAL_FiberHolderVis"  ref="AnlBlue"    alpha="1.0"     visible="true"/>
-
-
-    <comment>
-      ECal Vis
-    </comment>
-    <vis name="EcalVis"                 ref="AnlGold"   showDaughters="true"  visible="true"/>
-    <vis name="EcalBarrelVis"           ref="AnlGold"   showDaughters="false" visible="true"/>
-    <vis name="EcalBarrelSectorVis"     ref="AnlGold"   showDaughters="true"  visible="true"/>
-    <vis name="EcalBarrelStaveVis"      ref="AnlOrange" showDaughters="false" visible="true" />
-    <vis name="EcalBarrelEnvelopeVis"   ref="AnlGold"   showDaughters="false" visible="true" />
-    <vis name="EcalBarrelLayerVis"      ref="AnlGold"   showDaughters="true"  visible="true"/>
-    <vis name="EcalBarrelModuleVis"     ref="AnlRed"    showDaughters="false" visible="true" />
-    <vis name="EcalBarrelSliceVis"      ref="AnlGray"   showDaughters="false" visible="true"/>
-    <vis name="EcalBarrelFiberLayerVis" ref="AnlGold"   showDaughters="false" visible="true" />
-    <vis name="EcalBarrelSupportVis"    ref="AnlLightGray" showDaughters="false" visible="true"/>
-
-    <vis name="EcalEndcapVis"           ref="AnlGold"   showDaughters="true" visible="false"/>
-    <vis name="EcalEndcapLayerVis"      ref="AnlGold"   showDaughters="false" visible="true"/>
-    <vis name="EcalEndcapBlockVis"      ref="AnlGold"   showDaughters="false" visible="true"/>
-
-    <vis name="EcalEndcapNModuleVis"    ref="AnlGold"   showDaughters="false" visible="true"/>
-
-    <vis name="FFPreVis"            ref="AnlGold"             showDaughters="true" visible="true"/>
-    <vis name="FFPreLayerVis"       ref="FFPreVis"            showDaughters="true" visible="true"/>
-    <vis name="FFPreModuleVis"      ref="FFPreLayerVis"       showDaughters="true" visible="true"/>
-    <vis name="FFPreRadiatorVis"    ref="FFPreModuleVis"      showDaughters="true" visible="true"/>
-    <vis name="FFPreReadoutVis"     ref="FFTrackerSurfaceVis" showDaughters="true" visible="true"/>
-
-    <comment>
-      HCal Vis
-    </comment>
-    <vis name="HcalVis"               ref="AnlBlue"   showDaughters="true"  visible="true"/>
-    <vis name="HcalBarrelVis"         ref="AnlBlue"   showDaughters="true"  visible="true"/>
-    <vis name="HcalBarrelStaveVis"    ref="AnlBlue"   showDaughters="false" visible="true"/>
-    <vis name="HcalBarrelLayerVis"    ref="AnlBlue"   showDaughters="false" visible="true"/>
-    <vis name="HcalEndcapVis"         ref="AnlBlue"   showDaughters="false" visible="true"/>
-    <vis name="HcalEndcapLayerVis"    ref="AnlBlue"   showDaughters="false" visible="true"/>
-    <vis name="HcalSensorVis"         ref="AnlBlue"   showDaughters="false" visible="false"/>
-    <vis name="HcalAbsorberVis"       ref="AnlGray"   showDaughters="false" visible="false"/>
-    <vis name="HcalEndcapInsertVis"   ref="AnlGray"   showDaughters="false" visible="true"/>
-    <vis name="LFHCALVis"             ref="AnlBlue"   showDaughters="true" visible="true"/>
-    <vis name="FluxEndcapNVis"        ref="AnlGray"   showDaughters="true" visible="false"/>
-    <vis name="FluxEndcapNLayerVis"   ref="AnlViolet" showDaughters="false" visible="true"/>
-    <comment>
-      Passive steel for flux return
-    </comment>
-    <vis name="PassiveSteelVis"       ref="AnlViolet" showDaughters="false" visible="true"/>
-
-    <comment>
-      Solenoid
-    </comment>
-    <vis name="SolenoidCoilVis"     ref="AnlLightGray" showDaughters="true"  visible="true" lineStyle="solid" drawingStyle="solid" />
-    <vis name="SolenoidCryostatVis" ref="AnlGray"       showDaughters="true"  visible="true" lineStyle="solid" drawingStyle="solid" />
-    <vis name="SolenoidYokeVis"     ref="AnlLight_Gray" showDaughters="false" visible="true" lineStyle="solid" drawingStyle="solid" />
-
-
-    <comment>
-      PID Detectors
-    </comment>
-    <vis name="RICHVis"         ref="AnlTeal"     showDaughters="true"/>
-
-    <vis name="DIRCVis"         ref="AnlTeal"       showDaughters="true" visible="true"/>
-    <vis name="DIRCLayerVis"    ref="AnlTeal"       showDaughters="true" visible="true"/>
-    <vis name="DIRCModuleVis"   ref="AnlTeal"       showDaughters="true" visible="true"/>
-    <vis name="DIRCSupportVis"  ref="AnlTeal"       showDaughters="true" visible="true"/>
-    <vis name="DIRCFrameVis"    ref="AnlOrange"     showDaughters="true" visible="true"/>
-    <vis name="DIRCBarVis"      ref="AnlTeal"       showDaughters="true" visible="true"/>
-
-    <comment>
-      Beam line with magnets
-    </comment>
-    <vis name="BeamPipeVis"         ref="AnlLightGray"       showDaughters="true" visible="true"/>
-    <vis name="FFMagnetVis"         ref="AnlGreen"            showDaughters="true" visible="true"/>
-    <vis name="FFMagnetCoilVis"     ref="AnlRed"              showDaughters="true" visible="true"/>
-
-    <comment>
-      ZDC visualization
-    </comment>
-
-    <vis name="ZDC_Ecal_Vis"        ref="AnlGreen" showDaughters="true"  visible="true"/>
-    <vis name="ZDC_Ecal_module_Vis" ref="AnlRed"   showDaughters="false" visible="true"/>
-    <vis name="ZDC_Hcal_Vis"        ref="AnlBlue"  showDaughters="true"  visible="true"/>
-
-    <comment>
-      Backwards beamline vacuum
-    </comment>
-    <vis name="BackwardsBox"      alpha="0.3" ref="AnlGray"       showDaughters="true" visible="true"/>
-    <vis name="BackwardsAir"      alpha="0.7" ref="AnlBlue"       showDaughters="true" visible="true"/>
-    <vis name="BackwardsVac"      alpha="0.1" ref="AnlLight_Gray" showDaughters="true" visible="true"/>
-
-    <comment>
-      PID visualization
-    </comment>
-    <vis name="TOF_envelope"     ref="AnlBlue" drawingStyle="wireframe" showDaughters="true" visible="true" />
-
-    <vis name="DRICH_vessel_vis"  ref="AnlGray"      showDaughters="true" visible="true" />
-    <vis name="DRICH_gas_vis"     ref="AnlGreen"     showDaughters="true" visible="true" alpha="0.5" />
-    <vis name="DRICH_aerogel_vis" ref="AnlTeal"      showDaughters="true" visible="true" />
-    <vis name="DRICH_filter_vis"  ref="AnlGold"      showDaughters="true" visible="true" />
-    <vis name="DRICH_mirror_vis"  ref="AnlLightGray" showDaughters="true" visible="true" />
-    <vis name="DRICH_sensor_vis"  ref="AnlBlue"      showDaughters="true" visible="true" />
-    <vis name="DRICH_service_vis" ref="AnlGreen"     showDaughters="true" visible="true" />
-
-    <vis name="MRICH_aerogel_vis" ref="AnlTeal" showDaughters="true" visible="true" />
-    <vis name="MRICH_frame_vis" ref="AnlGold" showDaughters="true" visible="true" />
-    <vis name="MRICH_lens_vis" ref="AnlGray" showDaughters="true" visible="true" />
-    <vis name="MRICH_mirror_vis"  ref="AnlGray" showDaughters="true" visible="true" />
-
-    <vis name="RICHServiceVis"  ref="AnlGray" showDaughters="true" visible="true" />
-
-    <comment>
-      Deprecated colors.
-    vis name="GreenVis"       alpha="1.0"  r= "0.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RedVis"         alpha="0.2"  r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RPVis"          alpha="0.99"  r= "1.0" g="0.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="RPLayerVis"     alpha="0.99"  r= "0.0" g="0.7" b="0.3" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" /
-    vis name="BlueVis"        alpha="1.0"  r= "0.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="OrangeVis"      alpha="1.0"  r= "1.0" g="0.45" b="0.0" showDaughters="true" visible="true"/
-    vis name="RedGreenVis"    alpha="0.5"  r= "1.0" g="1.0" b="0.0" showDaughters="true" visible="true"/
-    vis name="BlueGreenVis"   alpha="0.5"  r= "0.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="PurpleVis"      alpha="1.0"  r= "1.0" g="0.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="DoubleRedG"     alpha="0.5"  r= "2.0" g=".10" b="0.0" showDaughters="true" visible="true"/
-    vis name="RBG015"         alpha="0.5"  r= "0.0" g=".2"  b="1.0" showDaughters="true" visible="true"/
-    vis name="RBG510"         alpha="0.5"  r= "1.0" g=".2"  b="0.0" showDaughters="true" visible="true"/
-    vis name="RBG"            alpha="0.5"  r= "1.0" g="1.0" b="1.0" showDaughters="true" visible="true"/
-    vis name="GrayVis"        alpha="1.0"  r= "0.75" g="0.75" b="0.75" showDaughters="true" visible="true"/
+      Light Gas Cherenkov Visualizations
     </comment>
+    <vis name="LGCTankVis"   ref="orange"        visible="true" showDaughters="true" alpha="0.3" />
+    <vis name="LGCMirrorVis" ref="silver"        visible="true" showDaughters="true" alpha="0.6" />
+    <vis name="LGCConeVis"   ref="silver"        visible="true" showDaughters="true" alpha="0.6" />
+    <vis name="LGCPMTVis"    ref="saddlebrown"   visible="true" showDaughters="true" alpha="0.6" />
+    <vis name="LGCShieldVis" ref="darkslategray" visible="true" showDaughters="true" alpha="0.6" />
 
   </display>
diff --git a/src/GasCherenkov_geo.cpp b/src/GasCherenkov_geo.cpp
index c8b5a14f7a2c4a4e8edf717c08a07e2a876b820d..feae41f1c4faa66329ea549ebcbfbe558c25dd52 100644
--- a/src/GasCherenkov_geo.cpp
+++ b/src/GasCherenkov_geo.cpp
@@ -1,3 +1,6 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+// Copyright (C) 2024 Chao Peng
+
 #include "DD4hep/DetFactoryHelper.h"
 #include "DD4hep/OpticalSurfaces.h"
 #include "DD4hep/Printout.h"
@@ -10,19 +13,6 @@
 using namespace dd4hep;
 using namespace dd4hep::rec;
 
-/** \addtogroup PID Particle ID Detectors 
- */
-/** \addtogroup ThresholdGasCherenkov Light Gas (threshold) Cherenkov detector.
- * \brief Type: **ThresholdGasCherenkov**.
- * \ingroup PID
- *
- * \code
- *   <detector>
- *   </detector>
- * \endcode
- *
- * @{
- */
 static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetector sens)
 {
     xml::DetElement x_det    = handle;
@@ -66,7 +56,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
         }
         v_tank = Volume("v_gas_tank", tank_union, rad_mat);
     }
-    v_tank.setVisAttributes(desc, dd4hep::getAttrOrDefault<std::string>(x_det, _Unicode(vis), "BlueVis"));
+    v_tank.setVisAttributes(desc, x_tank.attr<std::string>(_Unicode(vis)));
     Volume motherVol = desc.pickMotherVolume(det);
     // z value to shift the center of the envelope from its first segment's center to the very beginning
     double shift_z = tank_lengths[0]/2.;
@@ -121,6 +111,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
         PlacedVolume      pv_mir = v_sector.placeVolume(v_mir, Position(mpl.x(), mpl.y(), mpl.z() - shift_z));
         DetElement        de_mir(det, "de_mirror_" + std::to_string(mid), mid);
         de_mir.setPlacement(pv_mir);
+        v_mir.setVisAttributes(desc, x_mir.attr<std::string>(_Unicode(vis)));
 
         // optical surface
         auto msurf = surfMgr.opticalSurface(x_mir.attr<std::string>(_Unicode(surface)));
@@ -158,6 +149,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
     PlacedVolume pv_pmt_array = winston_assem.placeVolume(v_pmt_array, Position(0., 0., 0.));
     pv_pmt_array.addPhysVolID("module", 1);
     de_pmt_array.setPlacement(pv_pmt_array);
+    v_pmt_array.setVisAttributes(desc, x_pmt.attr<std::string>(_Unicode(vis)));
 
     // build cone (its end touches the PMT surface)
     xml_dim_t x_cone            = x_winston.child(_Unicode(cone));
@@ -173,6 +165,7 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
     Volume           v_winston_cone("v_winston_cone", winston_cone_solid, winston_mat);
     PlacedVolume     pv_winston_cone = winston_assem.placeVolume(v_winston_cone, Position(0., 0., (cone_length + pmt_dz)/2.));
     de_winston_cone.setPlacement(pv_winston_cone);
+    v_winston_cone.setVisAttributes(desc, x_cone.attr<std::string>(_Unicode(vis)));
 
     // optical surface
     auto wsurf = surfMgr.opticalSurface(x_winston.attr<std::string>(_Unicode(surface)));
@@ -190,10 +183,9 @@ static Ref_t createDetector(Detector& desc, xml::Handle_t handle, SensitiveDetec
     Volume    v_winston_shield("v_winston_shield", winston_shield_solid, shield_mat);
     // wrapping around PMT
     winston_assem.placeVolume(v_winston_shield, Position(0., 0., x_shield.attr<double>(_Unicode(shift_z))));
+    v_winston_shield.setVisAttributes(desc, x_shield.attr<std::string>(_Unicode(vis)));
 
     return det;
 }
-//@}
-// clang-format off
 DECLARE_DETELEMENT(SoLID_GasCherenkov, createDetector)