Git Product home page Git Product logo

d-wasserman / complete_street_rule Goto Github PK

View Code? Open in Web Editor NEW
160.0 13.0 32.0 172.57 MB

The Complete Street Rule for ArcGIS CityEngine is a scenario oriented design tool intended to enable users to quickly create procedurally generated multimodal streets.

Home Page: https://geonet.esri.com/docs/DOC-6915

License: Apache License 2.0

Python 100.00%
complete streets transportation cityengine procedural-generation cga treatments street-rule geometry simulation

complete_street_rule's People

Contributors

d-wasserman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

complete_street_rule's Issues

Signal Placement/Other Issues.

Signal placement and traffic control generally need to be revamped. They might need to be placed in areas that make less sense for single cross-section locations, but a reversal switch might be enough to enable cross-sections with the current approach.

Street Lamps Overlap with the Bridges Above

Similar to bridge piers, the lamps also overlap with the bridges above.

image

I tried to add an empty bounding box by extrude(y, 6.5) to test whether the lamps overlap with the bridges above.

Sidewalk_Lamp(offset) -->
	alignScopeToGeometry(yUp,largest,0)
	alignScopeToAxes(y)
	center(xz)
	r(0,90,0)
	s(0,0,0)
	report("Objects.Street Lamp Count", 1)
	extrude(y, 6.5)
	Lamp_Check(offset)

Lamp_Check(offset) -->
    case overlaps(inter):
        NIL
    else:
        Lamp_Asset(offset)
    
Lamp_Asset(offset) -->
	t( SLight_Translate_X ,0, SLight_Translate_Z )
	r(0,90,0)
	t(offset,0,0)
	set(material.name,"Street_Lamp")
	label("Street Lamp")
	color( _ThematicRouter ("Pedestrian","lamp"))
	i(Street_Lamp_Object)
	Delete_Texture

However, it sometimes changes the orientation of the lamps, i.e. some lamps are not in the correct orientation, as shown in the figure below

image

How to solve the problem?

Bike Lanes on Sidewalks - Feature Request

Hi there,

I noticed this growing trend in Urban Design lately of having the bike lanes as part of the sidewalk (see diagrams)

Bike lane on sidewalk, planting near the buildings:
CSR_Feature Request_Bike lane on sidewalk_01

Bike lane on sidewalk, planting near the street:
CSR_Feature Request_Bike lane on sidewalk_02

Would be possible to implement such a feature to the Complete Street Rule in the near future?

Thank you!

Zero Lanes on Best Fit Setting

The best fit setting was intended to be an abstraction of width by adding width to drive lanes when there is "extra" space (more than the lane width). However, if there are zero lanes, the setting reacts by consuming all the geometry on the road. This can be fixed by just going off of best fit to exact, but that is not a great solution for users (especially anyone doing demos). This will be taken care of ASAP. There is a short term and long term fix I have in mind.

Texture & Asset Upgrades

This is a general comment that I would appreciate any donations from individuals using this rule of of open source models, textures, and assets to improve the visual quality of the rule. Also any recommendations can be left as a comment on this issue.
Some general elements that need consideration for an overall are:

  • Removal of stamp based textures to only use full PBR materials. This means stamps would be replaced with inserted "stencils" for bike lanes, turn lanes, bus lanes, TWLTLs, etc.

  • Bike Lane Symbols (in Dev Branch)

  • Bike Lane Arrows (in Dev Branch)

  • Bus Lane Letters (in Dev Branch)

  • TWLTL Arrows (in Dev Branch)

  • TWLTL Transition/Painted Taper (Similar to that documented here) (in Dev Branch)

  • HOV Symbol (in Dev Branch)

  • Turn Lane Arrows (Multiple- Right, Right Through, Through, Left Through, Left, All) (in Dev Branch)

  • Carshare Only Symbol (in Dev Branch)

  • Bus Stop Letters (in Dev Branch)

  • Stop Symbol (in Dev Branch)

  • Crossing hatch (in Dev Branch)

  • Angled Parking (in Dev Branch)

  • Bike Buffer Paint Marks (In Dev Branch)

  • Micromobility Parking Spots (in Dev Branch)

  • Acquisition of PBR textures for the bare minimum of:

  • Painted Asphalt (White, Yellow, Green, Red, Blue - Edits were made in GIMP to the selected Asphalts below. )

  • Asphalt (Black or Black-Grey)

  • Concrete (Sidewalks)

  • Brick/Stones (Sidewalks/Crossing) - Multiple (1,2,3,4,5,6)

  • Curb/Planting Borders (Edited Concrete)

  • Dirt (Ground)

  • Grass (Plantings)

  • Rumble Strips (Use Asphalt for now)

  • Rail/General Metal Textures (Rails)

  • Acquisition of New Street Assets - current CityEngine upgrades suffice for now. Identifying unreal replacement actors/assets might be a good way to address this generally instead of keeping them with the project.

Notes:

  • Concerns over size- as I mentioned these upgrades to outside parties, there were concerns about the size of these changes. It could increase the repos size enough it is harder to download. As it stands the repo is ~130 MB, and the upgrade max target is ~250 MB. This is an increase in size, but not massive. Experiments with GIMP exports of JPGs show that reducing the quality of the export to 90-95% can decrease the size of the file substantially. This will be used strategically to make sure PBR upgrades can be done quickly and efficiently. After that if someone exports to Unreal or other platform, at least material replacements will be substantially easier.

Curb Radii Issues

This is just a quick write up on something that has been observed on a few occasions. Generally, the Complete Street rule and some of the other rules using UV space 0 (absolute geometry texture space), seem to have weird reactions to large curb radii at intersections. It seems like the street shapes are wider than the street width parameters are communicating. A work around is adjusting the crosswalk and crosswalk-stop bar gap attributes so that the widen transition shapes do not interact with the rest of the splits on the street, but I can't narrow down why this is exactly occurring. If anyone has screenshots or parameter lists that they try for replication I would appreciate the insight.

Pedestrian Paths & Curbs

Hi David,

A possible enhancement to put on the wish list:

When using CE streets to create pedestrian paths, the usual trick is lowering down the street width to 0.
This way we end up with just two contiguous sidewalk segments.
However, when we try to do this applying the CSR, we can't get an homogeneous result because of the concrete curbs that are always set at the sidewalk limit (see screenshots).
Would it be possible to add an attribute to get rid of the curbs when not needed?
In my opinion, best would be an option to decide if we want to have right, left or both curbs for each sidewalk.

Pedestrian trick_01

Pedestrian trick_02

Cyclist Model Issues

Hi!

The cyclist assets from https://github.com/d-wasserman/Complete_Street_Rule/tree/master/assets/Complete_Streets/LowPolygon3D.com_Cyclists have issues when exporting for example to Blender via FBX or Unreal via Datasmith.

See:

image

The issue is that the inside and the outside of the models are separate geometry. This will lead to artifacts for example in Unreal as Opaque geometry is rendered two sided (what you see on the screenshot is actually the backside of the inside of the model).

This could be fixed by removing the "internal" faces and readjusting the normals in Blender.

Short Segments and Connections

I have recently been looking more and more at connecting segments and short segments as part of cross sections. These segments occur as a result of imported data, and even specific design choices made early on when the rule was being created that were essentially given easy solutions to clearly very specific problems. Future plans include changing the rules reaction to Stop_Begin and Stop_End parameter defaults at "none", and specifically how the rule treats short streets. Work in progress.

Texture Problem

I read the instructions on the ESRI vegetation library but I am unsure how to connect the two data bases.....3d plant library/lumenrt in my assets folder but still not good. How do I tell complete streets to go find the trees for my sidwalks?

Esri Requests

  • Thomas Fuchs at Esri noticed that some of the textures are 8 bit depth textures that don't work with SLPKs.

  • Other request at Esri identified a need to change some paths to update the Complete Street Example for 3D models.

Both of these requests will likely warrant a new version number.

Mirrored BUS sign on bus stops

On-Street Parking section, Right/Left_Parking_Type: Parallel with Curbside Bus Stop
The BUS writing on the street is mirrored. Is there a particular reason for that?
In case it's not intentional, I guess it should be easy to fix.

Complete Streets Rule_BUS sign_to be fixed_2_Screenshot 2021-09-21 143623

Complete Streets Rule_BUS sign_to be fixed_Screenshot 2021-09-21 143623

Highway guardrail

I hope the author can add guardrails on both sides of the road to the rules

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.