Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
We recommend you use either the Logitech c270 (http://www.amazon.com/Logitech-Webcam-Widescreen-Calling-Recording/dp/B004FHO5Y6/) or the Microsoft LifeCam HD-3000 (http://www.amazon.com/Microsoft-LifeCam-HD-3000-Webcam-T3H-00011/dp/B008ZVRAQS/). You can use other webcams, but some cameras compress the video from the camera before video frames are sent to your computer. This compression can remove details like your shots before software gets a chance to look for them. Similarly, some cameras have poor sensor quality and do not handle darkened rooms well. If you are trying to use an infrared trainer, you will need to use a camera that has no infrared cutoff filter or a removable filter..
We have found and integrated support for a high end camera we can control reliably from multiple operating systems and that achieves a very high FPS consistently. We are currently not advertising this camera from its vendor because it is a specialty product. We are communicating with the vendor to see what we can do for non-technical users. If you are a very technical user, get in contact with us if you want to learn the camera's make and model.
What do I do if my webcam does not work?
Are you using one of the cameras recommended above? The simple answer is that if you are, you should contact us, preferrably on reddit. If you are not using a recommended camera, you are out of luck unless you are technical enough to troubleshoot it yourself.
One exception to the below technical answer is that a user of ShootOFF has contributed Windows support for the PS3Eye which does not use UVC. See PS3Eye for more information.
The more technical answer is we don't write code to make ShootOFF work with specific cameras. We are not experts in camera drivers and likely do not have a specific answer for you. ShootOFF uses OpenCV (Sarxos webcam-capture from 3.0-3.7.1) to capture video feeds from cameras. OpenCV will use whatever UVC driver is installed on your system that is appropriate for the camera if one is available. If no driver is available for the camera, the camera will not work. If the UVC driver is broken or OpenCV has a bug that makes it not cooperate well with that camera, you are out of luck. Our recommended cameras are recommended because they work well, they are cheap, and they are the best selling cameras out there and therefore are extremely likely to work on all systems ShootOFF supports. You could try any of the following options, all of which have been known to work in various circumstances:
- Install the manufacturer's driver or update the driver/video subsystem on your platform (e.g. v4l on Linux).
- Install a different version of OpenCV and ensure it appears in LD_LIBRARY_PATH (Linux), DYLD_LIBRARY_PATH (Mac), or simply your PATH (Windows).
- Try a different operating system. Some cameras work on Windows but not Linux and vice versa.
What projector should I buy?
What else do you plan to do with your projector? If you're just planning to use ShootOFF, people have successfully used 15 year old surplused projectors that are huge and act nicely as a space heater while shooting. Others have been happy with very cheap, low resolution projectors that are sometimes available for $30 (www.amazon.com/dp/B00MVPVZ6A/ref=sr_ph_1?ie=UTF8&qid=1437408242). However, these can be a bit dim and hard to see: http://i.imgur.com/Q4KnCyb.jpg. For a projector with a great range of colors that is bright and configurable enough to easily use for movies, gaming, and ShootOFF, we recommend the Optoma gt760 or a newer version of the same model.
Having said that, there are a couple of parameters worth watching in particular if you want to shop around:
Get the best lumens range you can get for your money. This can make the difference between being unable to see the projection unless the room is totally dark vs. comfortably using the projector in many different circumstances.
Try not to go with a native resolution lower than 800x600. The native resolution is the most important resolution point because it dictates how much room you actually have to work with. Anything less than 800x600 starts to get cramped very quickly when adding targets.
Check to see if anyone claims to have successfully watched a movie with the projector. Some low end projectors can't handle motion well, which leads to stuttering or things seemingly jumping out of nowhere wherever motion occurs.
Try ShootOFF without a projector first. You can use paper targets and a webcam just fine. If you have problems with ShootOFF in general you'd rather know now than after you spend money on a projector (the most common problem is people trying to run ShootOFF on 8+ year old laptops that just aren't powerful enough).
Many bigger city libraries will check out projectors for a day. Check out your local library. If this is an option it would give you a chance to try everything out and see what you really care about feature wise before buying.
Don't skip the tips page
What if I don't want to buy a projector but want to use the projector arena anyway?
NOTE: We do not support the "hacks" discussed in this section. If you try one of these approaches and it doesn't work for you, we will not spend time helping you troubleshoot your setup.
You can use the projector arena on a TV or monitor by placing a sheer curtain (e.g. http://www.ikea.com/us/en/catalog/products/90232331/) or tracing paper over the display. For bright screens, you can get away with using thin printer paper. These "hacks" are required because most modern displays have anti-glare measures that absorb too much of a trainer's light.
What do I do if ShootOFF is missing shots?
Click the preview above for a brief video tutorial on improving shot detection
Follow these steps in order:
- Honestly assess your trigger pull. Is the laser "dot" a nice and crisp circle on the target or is it a jagged smear stretching a distance of half an inch or more? If your trigger pull is particularly sloppy, the laser will swipe across the video feed in a manner that is not detectable by our algorithm. Slow down and work on the fundamentals -- ShootOFF is not Time Crisis!
- Carefully check your setup for compliance with our camera setup tips. The camera being too far from the target is a very common problem. If you are unsure if your setup is correct, take a picture, post it on reddit and ask nicely for advice.
- Search PassMark for your CPU. Is the score less than 3000? If so, your hardware is too low performing to ever work well with ShootOFF. Is your score between 3000 and 4000? If so, your hardware is still not particularly great for shot detection, but it should be passable if you are willing to make some tweaks and put up with the occasional missed shot. Is your score above 4000? If so, please enter debug mode by running from the command line with
java -jar ShootOFF.jar -d, right click the video feed and click "Start Recording", take enough shots for some of them to be missed, right click the feed and click "Stop Recording", and finally, email us the video.
NOTE: There is a bug in ShootOFF 3.10 that can result in ShootOFF failing to work if the projection mode is used and the projector area is too distorted to properly calibrate. Upgrade to ShootOFF 4.0 or newer.
What version of Java does ShootOFF require?
You must use Java 8u40 or newer. Older versions do not include code ShootOFF requires.
Why doesn't ShootOFF launch on my Windows computer (Or, ShootOFF stopped working on Windows after Windows 10 upgrade)?
If you have Java installed and ShootOFF is still not starting on your Windows computer, either your version of Java is out of date (See above) or your installation of Java is corrupted. Try uninstalling Java in Programs And Features (Add/Remove Programs) and reinstalling it from the Java website. You can get to Programs And Features by hitting the Windows key, typing "Programs and Features" and hitting enter. Remove the entries labeled "Java Update". Visit Java.com to download the latest version.
If that does not work, some users have had success with using jarfix to repair their Java file associations. See the jarfix site here (Note: ShootOFF does not endorse jarfix, use at your own risk).
Why doesn't ShootOFF work on my Mac?
This is typically because a very old version of Java is configured as your system default. Here are the steps to troubleshoot this problem:
A. Open the Terminal application and run this command:
You should see similar output to the following:
Matching Java Virtual Machines (3): 1.8.0_74, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home 1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
If you do not see the required Java version, then you need to download and install the latest version of Java from https://www.java.com/. Try ShootOFF again, as this should fix the problem if you simply didn't have the right version of Java installed. Otherwise, continue to step B.
B. If you see required version of Java but ShootOFF still does not work, run this command in Terminal:
If Java's version is not 1.8 or newer, your system is defaulting to an old JRE. Here is example output for a JRE that is too old to run ShootOFF:
java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)
Set a modern version of Java by copying the path from an appropriate version as listed by the output of
/usr/libexec/java_home -V into the following command, which you should run on the terminal:
export JAVA_HOME="COPIED_PATH_HERE". For example:
Why doesn't ShootOFF work on my Linux computer?
If ShootOFF fails to run, it's likely because you need to preload v4l1compat using:
export LD_PRELOAD=path_to_v4l1compat; java -jar ShootOFF.jar
The chimes for diagnostic messages get annoying, can I turn them off?
If the message has this icon next to it the chime is on for that specific message:
Clicking the message will flip the icon and mute the chime for the clicked message:
The fact that you muted the chime for a specific message is saved across ShootOFF sessions. Clicking a message with a muted chime will unmute the chime.
Will ShootOFF work with my laser trainer?
ShootOFF is not intended to lock you into any specific hardware because vendor lock-in is gross. As a result, you should be able to use ShootOFF with any laser trainer where pulling the trigger makes a laser turn on, although you may need to do a bit of additional configuration to make shot detection work well with your trainer.
ShootOFF should work with any infrared trainer when using a camera that does not have an infrared cutoff filter. It will also support recoil weapons when the camera's FPS is high enough to capture the shorter pulse of recoil weapons.
How do I change the webcam feed resolution?
ShootOFF's core currently supports multiple resolutions. However, we do not let you change the resolution at this time because the Java implementation of the shot detection algorithm is not well tuned for any resolution but the default. We do not plan to resolve this until we integrate a native implementation of shot detection (in the works) into a later version of ShootOFF.
How do I ask an actionable question or report a bug?
At a high level we need to know four things to be able to help you or to duplicate the bug:
- What were you trying to accomplish?
- How were you trying to accomplish it? We need details here:
- What did you click?
- What buttons on your keyboard did you hit?
- What order did you click/hit things in?
- Are you running Windows, Linux, or Mac?
- What did you expect to happen or see?
- What actually happened? If it's something visual a picture or video is hugely helpful at this point.
The vast majority of the time if we do not give a satisfactory answer the first time or quickly acknowledge a bug report, it is because the details are too vague for us to act on. The people answering your questions are volunteers who do not always have the time or energy to elicit additional information.
Will ShootOFF be ported to mobile?
We are planning to port the GUI to tablet devices to control the backend (the part that detects shots and injects them into the virtual world you see from a webcam feed). This is why we made the GUI touch friendly in 3.9. Our ultimate goal is to have the backend running on a single board computer such as the Raspberry Pi while you control the system from a tablet. This will provide the mobility improvements people are looking for when they ask about phone support without compromising performance. Due to performance concerns, it is extremely unlikely we will attempt to make the full ShootOFF system work on phones or tablets any time soon.
I have an idea, can you implement it?
We are always interested in hearing interesting ideas, but we can make no guarantees we will implement them. We tend to implement ideas relatively quickly if they fall into one of three categories:
- The idea is of obvious and immediate value in our own lives. Sorry, we don't get paid to work on ShootOFF, thus we are unlikely to drop everything for your idea even within a few months of receiving it unless it's of clear value in our own lives.
- The idea is of obvious and immediate value to ShootOFF users in general and does not take more than ~2 hours to implement. On the other hand, if the idea takes days to implement or only supports some very narrow use case we know most ShootOFF users are not interested in, we likely won't get to it even if we understand why you think it's cool.
- The idea is one we planned to implement in the future anyway, but your suggestion has motivated us to do it sooner.
Please do not be offended if we are not as excited by your idea as you are. Some of us have spent 3+ years working on ShootOFF at this point. We might have thought of your idea already or even if we didn't we may realize why it's extremely complicated to implement.