Coder Social home page Coder Social logo

j-vanetten / openpilot Goto Github PK

View Code? Open in Web Editor NEW
55.0 13.0 29.0 2.1 GB

jvePilot: FCA: Hybrid OpenPilot/ACC

Python 13.33% Cap'n Proto 0.41% C++ 4.54% Shell 0.12% C 80.87% Assembly 0.34% HTML 0.07% QML 0.01% Cython 0.19% JavaScript 0.04% CSS 0.01% Kaitai Struct 0.05%
openpilot jvepilot jeep chrysler

openpilot's Introduction

openpilot on the comma 3X

jvePilot OpenPilot/ACC for Chrysler/Jeep

This fork is only for Chrysler/Jeep vehicles and requires a Comma 3 or later device to run. Comma 2 users need to use this branch

Buy me a beer!

Come join us on Discord!

Table of contents

Safety Notes

  • This is my experimental branch, so I'm not responsible for any damage this may cause.
  • jvePilot still does not have direct control of the gas and brakes! Changing the ACC speed does not always result in the vehicle braking unless the difference in speed is large enough. If the speed difference is small, the vehicle just lets off the gas.
  • ACC can't go slower that 20mph
  • ACC doesn't do a good job at seeing things that are already stopped

jvePilot

I have a 2018 Grand Cherokee Trailhawk, so I'm only able to confirm features using this vehicle.

  • Pacifica also confirmed to be working

What is this Fork?

This is my personal OpenPilot fork that includes features that I feel make it a better driving experience for me and possibly others.

Benefits of jvePilot

  • Smother driving in traffic as jvePilot will do a better job at predicting traffic and adjust ACC speed accordingly
  • ACC braking by setting the cruse speed lower that the target to help slow the vehicle sooner
  • Slow for cars cutting in before ACC does
  • Slow in a turn, so you don't have to change the set speed yourself (Speeds are configurable)
  • Always On Lateral Control so steering is active even if ACC isn't
  • Auto enable ACC on start
  • Auto follow feature to adjust the follow distance based on speed (Speeds are configurable)
  • ACC Eco to limit the throttle when accelerating
  • Syncs jvePilot display speed with the vehicle speedometer
  • Gas/brake indication using green/red colors on speed indicator

Longitudinal control

This fork combines the speed control logic of OpenPilot with the vehicles Adaptive Cruse Control (ACC). It does this by changing the ACC speed to match the value OpenPilot calculates as the desired speed. This brings some of OpenPilots longitudinal control to these vehicles. Including things like slowing while cornering and slowing when it detects cut-ins. It will also smooth the braking of ACC when driving in traffic.

On FCA vehicles, only the steering is controlled by jvePilot and speed is left up to the ACC of the vehicle. This fork takes control of the ACC speed setting and adjusts the ACC speed to match the speed jvePilot would be targeting if it actually was able to control the gas and brakes. It does this by simulating ACC+ and ACC- button presses on the steering wheel to change the ACC speed. It is limited as ACC only goes down to 20 mph, so it doesn't help as low speeds.

Always On Lateral Control

Always On Lateral Control, or AOLC, is a feature that allows jvePilot to steer even if ACC isn't actively engaged.
Enabling this feature will allow a driver to take control of gas/brakes while still retaining the automatic steering provided by jvePilot. Because the low torque applied to the steering, it's very easy to override the steering if needed.

ACC Ready on Start

When enabled, jvePilot will enable ACC on start.
This pairs well with Always On Lateral Control so lateral control is ready to go without having to remember to press the ACC on/off button.

Auto Follow

Auto Follow is a way to automate the changing of the stock follow distance setting. It sets the follow distance to closer at slow speeds and increases it the faster you go. Setting the follow speed to one/two bars helps with keeping up with cars that take off when stopped or at slow speeds. The faster you go, the more distance you want, so you can have more confidence in ACC being able to stop in case it needs to.

The current enabled state of Auto Follow is as an icon above the ACC Eco button on the jvePilot display. Pressing Follow + or - will disable Auto Follow giving you full control to set the follow distance. To re-enable Auto Follow, hold either Follow + or - for half a second.

ACC Eco

When enabled, jvePilot will limit how far ahead the ACC setting is above the current speed.
This prevents the vehicle from using an aggressive throttle to get up to speed saving on gas/battery.

The ACC Eco button is located in the lower right corner of the display.
Tapping the button cycles between off, level 1, and level 2 eco settings. Level 2 provides the slowest acceleration and is selected when both leaves are green.
Level 1 should provide a balance is selected when only one leaf is green. If you feel these settings are not right for you or your vehicle, see the ACC Eco setting to adjust them. Much like your vehicles eco/sport modes, the current setting is persisted between drives.

How to use it

When using this branch, you will be setting the max ACC speed on the jvePilot display instead of the one in the dashboard. jvePilot will then set the ACC setting in the dashboard to the targeted speed, but never exceeding the max speed set on the jvePilot display. A quick press of the ACC+ and ACC- buttons will change this speed by 5 mph on the jvePilot display, while a long deliberate press (about a 1/2 second press) changes it by 1 mph. DO NOT hold the ACC+ or ACC- buttons for longer that a 1 second. Either make quick or long deliberate presses only.

Where to look when setting ACC speed

Do not look at the dashboard when setting your ACC max speed. Instead, only look at the one on the jvePilot display. The reason you need to look at jvePilot is because jvePilot will be changing the one in the dashboard. It will be adjusting it as needed, never raising it above the one set on the jvePilot display.

ONLY look at the MAX speed on jvePilot when setting the ACC speed instead of the dashboard!


Install

The easiest way to install jvePilot is to factory reset your C3 and use this Custom Software URL: https://bit.ly/jvePilot-release

Branches

/jvePilot-release - The latest release. Will contain the latest version I feel is ready for daily use. Custom Software URL: https://bit.ly/jvePilot-release

/jvePilot-beta - Sometimes I have people wanting to beta test jvePilot's new features. Mostly stable, but still can be buggy. Custom Software URL: https://bit.ly/jvePilot-beta

/feature/* - These branches are where I'm working on new features. These are never safe to run as they change all the time.


Customizing

Customizing features and parameters can be done on the UI display.
Click the gear icon and then select jvePilot from the sidebar.
Clicking on the text of feature of will show more information about it and allow customization of the feature. Note that some settings do require a vehicle restart, and some don't The settings that don't require a restart may take upward of 5 seconds to take effect after changing them.

Slow in Curves

jvePilot will slow in curves so that you don't have to.

  • Default: On
  • Vehicle Restart Required: No

Speed Ratio

Use this to tune the speed in curves to you liking. Setting this to 1.2 will cause jvePilot to drive 20% faster in turns than if it was set to the default of 1.0

  • Default: 1.0
  • Units: Ratio
  • Vehicle Restart Required: No
  • Min/Max values (0.1, 2)

Drop off

Adjusts how much the speed drops as the curve increases. Decrease this value to lessen the amount of drop off as the curve increases. Changing this value will likely require adjusting the Speed Ratio to compensate.

  • Default: 2.0
  • Vehicle Restart Required: No
  • Min/Max values (1.0, 3.0)

Reverse ACC +/- Speeds

Reverse the stock ACC +/- button's 1mph on short press and 5mph on long press. Turn off to return to stock style.

  • Default: On
  • Vehicle Restart Required: Yes

Auto Follow

If you don't want auto follow enabled on every start, turn this off.

1-2 Bar Change Over

When your speed (in MPH) is below this setting, Auto Follow will set the follow setting to one bar.
When you reach this speed (in MPH), Auto Follow will set the follow setting to two bars.

  • Default: 15
  • Units: MPH
  • Vehicle Restart Required: No
  • Min/Max values (0, 300)

2-3 Bar Change Over

When your speed (in MPH) is below this setting, Auto Follow will set the follow setting to two bars. When you reach this speed (in MPH), Auto Follow will set the follow setting to three bars.

  • Default: 30
  • Units: MPH
  • Vehicle Restart Required: No
  • Min/Max values (0, 300)

3-4 Bar Change Over

When your speed (in MPH) is below this setting, Auto Follow will set the follow setting to three bars. When you reach this speed (in MPH), Auto Follow will set the follow setting to four bars.

  • Default: 65
  • Units: MPH
  • Vehicle Restart Required: No
  • Min/Max values (0, 300)

ACC Eco

ACC Eco limits acceleration by keep the ACC cruise speed closer to your current speed. These setting are how far ahead, in MPH, of your current speed ACC will be set.
The higher the number, the more aggressive ACC will be when accelerating.

Keep ahead at ACC Eco level 1

Use this setting to adjust ACC Eco level 1 (one green leaf) for a balance of speed and eco-ness

  • Default: 7
  • Units: MPH
  • Vehicle Restart Required: No
  • Min/Max values 1, 100

Keep ahead at ACC Eco level 2

Use this setting to adjust ACC Eco level 2 (two green leaves) for maximum eco-ness

  • Default: 5
  • Units: MPH
  • Vehicle Restart Required: No
  • Min/Max values 1, 100

No steer alert

When this is enabled, you will hear a chime when your vehicle drops to a certain speed and can no longer be steered.

  • Default: On
  • Vehicle Restart Required: No

jvePilot Control Settings

Device Offset

Compensate for mounting your device off center in the windshield. If you mounted your device off center, use this setting to compensate. Use positive values if your device is to the left of center and negative if it's to the right.

  • Default: 0
  • Units: Meters
  • Vehicle Restart Required: No
  • Min/Max values -1, 1

Advanced settings

These settings are for advanced users doing advanced things.

Minimum Steer Check

When disabled, jvePilot will no longer put a minimum on steer speed. Requires a mod like a hardware interceptor.

  • Default: True
  • Vehicle Restart Required: Yes

Vision Only

When enabled, the model will no longer use any radar signals and rely on vision only. Enable this setting if you are seeing the lead car yellow triangle acting erratically.

  • Default: False
  • Vehicle Restart Required: Yes

What is openpilot?

openpilot is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of supported car makes, models, and model years. In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about the vehicle integration and limitations.

To start using openpilot in a car

To use openpilot in a car, you need four things:

  1. Supported Device: a comma 3/3X, available at comma.ai/shop.
  2. Software: The setup procedure for the comma 3/3X allows users to enter a URL for custom software. Use the URL openpilot.comma.ai to install the release version.
  3. Supported Car: Ensure that you have one of the 250+ supported cars.
  4. Car Harness: You will also need a car harness to connect your comma 3/3X to your car.

We have detailed instructions for how to install the harness and device in a car. Note that it's possible to run openpilot on other hardware, although it's not plug-and-play.

To start developing openpilot

openpilot is developed by comma and by users like you. We welcome both pull requests and issues on GitHub.

Want to get paid to work on openpilot? comma is hiring and offers lots of bounties for external contributors.

Safety and Testing

  • openpilot observes ISO26262 guidelines, see SAFETY.md for more details.
  • openpilot has software-in-the-loop tests that run on every commit.
  • The code enforcing the safety model lives in panda and is written in C, see code rigor for more details.
  • panda has software-in-the-loop safety tests.
  • Internally, we have a hardware-in-the-loop Jenkins test suite that builds and unit tests the various processes.
  • panda has additional hardware-in-the-loop tests.
  • We run the latest openpilot in a testing closet containing 10 comma devices continuously replaying routes.

User Data and comma Account

By default, openpilot uploads the driving data to our servers. You can also access your data through comma connect. We use your data to train better models and improve openpilot for everyone.

openpilot is open source software: the user is free to disable data collection if they wish to do so.

openpilot logs the road-facing cameras, CAN, GPS, IMU, magnetometer, thermal sensors, crashes, and operating system logs. The driver-facing camera is only logged if you explicitly opt-in in settings. The microphone is not recorded.

By using openpilot, you agree to our Privacy Policy. You understand that use of this software or its related services will generate certain types of user data, which may be logged and stored at the sole discretion of comma. By accepting this agreement, you grant an irrevocable, perpetual, worldwide right to comma for the use of this data.

Licensing

openpilot is released under the MIT license. Some parts of the software are released under other licenses as specified.

Any user of this software shall indemnify and hold harmless Comma.ai, Inc. and its directors, officers, employees, agents, stockholders, affiliates, subcontractors and customers from and against all allegations, claims, actions, suits, demands, damages, liabilities, obligations, losses, settlements, judgments, costs and expenses (including without limitation attorneys’ fees and costs) which arise out of, relate to or result from any use of this software by user.

THIS IS ALPHA QUALITY SOFTWARE FOR RESEARCH PURPOSES ONLY. THIS IS NOT A PRODUCT. YOU ARE RESPONSIBLE FOR COMPLYING WITH LOCAL LAWS AND REGULATIONS. NO WARRANTY EXPRESSED OR IMPLIED.


openpilot tests codecov

openpilot's People

Contributors

j-vanetten avatar miniz199922 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

Watchers

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

openpilot's Issues

Auto set user preferred Max Speed

Is your feature request related to a problem? Please describe.
Here's a thought. In the top left corner it starts of with the N/A for max set speed.
What if in the settings we could have a preferred speed we'd like to be auto set to when pressing our ACC on button. For me I would always prefer 65KM as most of our non highway roads are 60KM and OP won't operate below 64km(40mph). Being able to just turn on the ACC then resume when ready would be nice.
Also in regards to this too when we turn off the ACC completely the Max set speed is still displayed. IMO it should display N/A again as the last set Max speed is then misleading when you turn on the ACC again.

Dynamic camera offset (based on oncoming traffic) (From SA)

Saw these in another fork. Thought you might like it.
ShaneSmiskol/openpilot( https://github.com/ShaneSmiskol )

Lane Speed alerts
This feature alerts you of faster-travelling adjacent lanes and can be configured using the on-screen LS button on the bottom right to either be disabled, audible, or silent.

The idea behind this feature is since we often become very relaxed behind the wheel when being driven by openpilot, we don't always notice when we've become stuck behind a slower-moving vehicle. When either the left or right adjacent lane is moving faster than your current lane, LaneSpeed alerts the user that a faster lane is available so that they can make a lane change, overtaking the slower current lane. Thus saving time in the long run on long road trips or in general highway driving!

The original idea is thanks to Greengree#5537 on Discord. This feature is available at 35 mph and up.

Dynamic camera offset (based on oncoming traffic)
This feature automatically adjusts your position in the lane if an adjacent lane has oncoming traffic. For example, if you're on a two-lane highway and the left adjacent lane has oncoming cars, LaneSpeed recognizes those cars and applies an offset to your CAMERA_OFFSET to move you over in the lane, keeping you farther from oncoming cars.

This feature is available from 35 to ~60 mph due to a limitation with the Toyota radar. It may not recognize oncoming traffic above 60 mph or so. To enable or disable this feature, use opEdit and change this parameter: dynamic_camera_offset.

Significant Oversteer on lane change at freeway speeds

Describe the bug
A clear and concise description of what the bug is.

  1. This fork steers very rapidly during lane change. In a way no driver would duplicate, It oversteer on my 2017 trailhawk rapidly changing lanes, then lost center lane for confirmation of lane change, the rapidly correctly by steering back into the lane I started from, then locked and went back. This issue happened many times on my trip from Las Vegas to Salt Lake City. Something is wrong. I have a new 3x and I used JVE PILOT on Comma 2 for the last 6 months with perfect lane change and all features working. on comma 3xIt also swerved through two lanes on left lane change and was Extremely unsafe. I don't know why but someone needs to be told something is wrong.

  2. Also on several occasions the set speed was exceeded by JVI Pilot, in one case it kept increasing cruise control even though there was a car in front of me and it couldn't go faster, In anoither case it consistently set the actual speed above the speed I set that shows on the upper left corner of the Comma 3x. This is super shocking to me after owning 2ea comma 2 and always working near perfect, never a random lane excursion, but it just happened today on this trip. I loved your program but its not working on the comma 3x which makes me wonder, is something else wrong? Is my new 3X defective? But it kept lane just fine,but lane change was a nightmare and is unuseable. Im not programmer, but I want to let you know in good faith in case something is wrong.. The extreme lane swerve I encounters made me look like I breifly lost control. I did keep my hand on wheel and catch it, but it happens very fast. My opinion: COmma AI should never be programmed to rapidly apply steering at highway speeds. I kept asking myself "how did this happen" I just spent 1$1250 on 3x and I feel that i can't trust it at all. Never happened with COmma 2. SOmeone should know. I understand its my responsibility etc, and I was careful and corrected this behavior, but someone else might not be so lucky. Also I'm really bummed out I have to uninstall it. now. Its not safe.

To Reproduce

Drive 2017 WK2 with Comma 3X at 77mph on straight road, initial lane change. repeat in different condtions. I MAY LEAVE IT AND MAKE A YOUTUBE TO SHOW YOU. but I should uninstall ASAP.

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
The steer is way too fast for high speeds, its feels like a child grabbed the wheel and abruptly pulled on it. Its really scary.

[email protected]. I am not a programmer, I just figure out how to load the JVE PILOT and follow your directions 2017 WK2 Trailhawk

2020 Jeep Grand Cherokee Fingerprint

Need updated fingerprint from openpilot master
To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

LKAS Error when remote start

When i remote start the jeep i get a lkas error with white panda. If i start normal no lkas error

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Car unrecognized after update

I did the most recent update today 0.9.6 and now OP says Car unrecognized. This is a 2019 grand Cherokee with a comma 3.

Can't install j-vanetten open pilot on my C2

Describe the bug
I had to flash my comma2 for some reason and now when using the bit.ly link to the c2 package, it says an update is needed and when that update is installed, the comma2 seems to just boot loop at the recovery screen

To Reproduce
Steps to reproduce the behavior:

  1. Reflash Comma2 via these steps: https://commasupport.zendesk.com/hc/en-us/articles/4413250576535-Reflashing-NEOS
  2. Used the provide Comma2 link from this page to install j-vanetten open pilot.
  3. Installed j-vanetten screen appears.
  4. Update Required prompt appears and I click Install.
  5. Downloading recovery and Downloading system bars complete.
  6. Bootloop begins.

Expected behavior
I expected the software to install and load as it has done in the past

Additional context
This used to work fine but suddenly began to glitch which led me to refreshing the comma2 and thus beginning this cycle of issues.

Screen does not turn off, draining the battery

Describe the bug
When running the latest version of jvePilot, the Comma 3 screen does not turn off after shutting off the vehicle, draining the battery until the C3 shuts down fully from low voltage. I notice if I install official OpenPilot, it has me download a 1GB update, and the screen turns off about 20 seconds after stopping the car as expected. However, if I reinstall jvePilot, it has me download a 1GB update again, and the screen never turns off.

This is on a 2017 Chrysler Pacifica ICE.

To Reproduce
Steps to reproduce the behavior:

  1. Install official OpenPilot on C3
  2. Finish setup, and turn off car
  3. Watch screen turn off
  4. Install jvePilot on C3
  5. Finish setup, and turn off car
  6. Screen may dim, but does not turn off

Expected behavior
Screen turns off after shutting off the vehicle.

Downstream forks broken by forced history rewrite

Describe the bug
The current release branch has 7 commits. At some point it's history was rewritten, which has broken any downstream forks.

To Reproduce
Steps to reproduce the behavior:

  1. Fork this repo (before the rewrite)
  2. Try to merge upstream after the rewrite

Expected behavior
When new updates to OP occur, keep the version history and rebase.

Expanding jvePilot settings, then existing out of setting causes settings to disappear.

Describe the bug
Expanding jvePilot settings, then existing out of setting causes settings to disappear when you return

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings -> jvePilot
  2. Expand ACC Eco
  3. Click X to close settings
  4. Return to Setting-> jvePilot
  5. ACC Eco child options are now missing

Expected behavior
All settings are still available

NoPanda issue

Just got my C3 this week. Tried installing from your link four different times, I always get the "NoPanda" error. Reverted to the stock open pilot after each failed attempt and it works fine. Is there a hardware change on the newest C3s that is maybe causing this issue?

Support KM per hour

Is your feature request related to a problem? Please describe.

I love the work you've done with your fork.
But as I live in Canada it would be nice to have the ACC+/- buttons and any other areas where settings are Mile per hour set to work, show and set in Kmph if OP settings are set to metric.

Lkas error white panda

Can error only on remote start only. Regular start is fine. I think the problem is there is no CC.enabled allowed when remote start is active. Not until you push to start is it active. Hopefully there can be a if then else statement. Been working on it for 2 weeks and still hitting a wall. Running 2020 Jeep with WP advanced.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

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.