Better Hebbal

Urban Design Ideas Competition Entry

Hebbal located around 10 km from the Bangalore city is the gateway to the city from the airport. Currently, without strengthened public transportation serving this area, it is heavily reliant on private

#ABetterHebbal Challenge invited citizens to bring about ideas for public transport adoption around the Hebbal rooted in strong belief that involving public in design thinking will not only get some out of the box ideas but also help build a momentum for adoption.

Ideas and concepts around increasing the adoption of Micro-mobility options to feed mass transport that are currently available and are being provisioned for the immediate future.

wrd = [["Ward Name", "Area (sqkm)","Road Length (kms)","Lake Area (sqm)",
"Park Area (sqm)","Playground Area (sqm)","Bus Stops",
"Persons per sqkm","Decadal Population growth rate (%)"],
["Thanisandndra",10,235,444273,80829.49,1847,42,7,161,252.20],
["Byatarayanapura",10,144,308438,115449.12,19031,59,7,198,129.80],
["Kodigehalli",3.8,84,545611,166993.94,25810,16,12,369,119.80],
["Radhakrishna Temple Ward",1.9,54,80474,74683.61,9799,18,18,014,36.30],
["Sanjaya Nagar",1.5,44,0,37718.13,9231,9,21,096,34.40],
["Ganga Nagar",2.3,31,0,9386.52,15535,23,12,096,4.20],
["Hebbala",1.2,36,0,13100.59,13277,10,26,455,34.60],
["Vishwanath Nagenahalli",1.5,51,0,0,10540,8,34,772,100.80],
["Nagavara",2.1,65,0,0,0,14,29,205,71.50],
["Kaval Bairasandra",1.6,50,0,7208.17,3664,17,24,771,48.20],
["Manorayana Palya",0.8,33,0,2710.87,1996,5,59,123,37.80]];

mxWlkInt = 0.4;
mxBusInt = 0.6;
l = List.RestOfItems(wrd);
wrdArTtl = List.GetItemAtIndex(l<1>,1);
wrdArLak = List.GetItemAtIndex(l<1>,3);
wrdArPrk = List.GetItemAtIndex(l<1>,4);
wrdArPly = List.GetItemAtIndex(l<1>,5);
wrdRdLgt = List.GetItemAtIndex(l<1>,2);
wrdBsStp = List.GetItemAtIndex(l<1>,6);
wrdPlnDn = List.GetItemAtIndex(l<1>,7);
wrdPlnGw = List.GetItemAtIndex(l<1>,8);

//Ward Rectangles
wrdArEff = wrdArTtl-((wrdArLak + wrdArPrk + wrdArPly)*Math.Pow(10,-6));
wrdRctLg = (wrdBsStp/2)*mxBusInt;
wrdRctWd = wrdArEff/wrdRctLg;

//Required Stop/Station count
wrdRqStn = Math.Ceiling(wrdRdLgt/(mxWlkInt*2))-wrdBsStp;

//Unconnected Area
wrdOutWd = wrdRctWd>mxWlkInt?wrdRctWd-mxWlkInt:0;
wrdOutAr = wrdOutWd * wrdRctLg;
plDn2021 = (wrdPlnDn+(wrdPlnDn*wrdPlnGw/100));
wrdOutPn = Math.Ceiling(wrdOutAr * plDn2021);

wrdOutRd = wrdOutWd/wrdRctWd*wrdRdLgt;

//Required Stop/Station count
wrdOutSt = Math.Ceiling(wrdOutRd/(mxWlkInt*2));

//Population per station
stnOutPn = wrdOutPn==0?0:Math.Ceiling(wrdOutPn/wrdOutSt);

barStPt = Point.ByCoordinates(0,List.AddItemToFront(0,List.DropItems(Math.Sum(List.TakeItems(wrdRctWd+1,1..List.Count(wrdRctWd))),-1)));
barBsLn = Line.ByStartPointDirectionLength(barStPt,Vector.XAxis(),wrdRctLg);
barTpLn = barBsLn.Translate(Vector.YAxis(),wrdRctWd);

barBsPt = barBsLn.PointAtParameter(0..1..#Math.Ceiling(wrdRdLgt/wrdRctWd));

barInnWd = wrdRctWd<=0.4?wrdRctWd:0.4;
barOutWd = wrdRctWd>mxWlkInt?wrdRctWd-mxWlkInt:0;


barInnRd = Line.ByStartPointDirectionLength(barBsPt,Vector.YAxis(),barInnWd).Extrude(Vector.ZAxis(),wrdPlnDn/10000);
barOutRd = Line.ByStartPointDirectionLength(barBsPt.Translate(Vector.YAxis(),0.4),Vector.YAxis(),barOutWd).Extrude(Vector.ZAxis(),wrdPlnDn/10000);
List.Clean([barInnRd,barOutRd],false);

Last updated