Description-File for physical setup of Multi-Monitors - hardware

I need machine-readable descriptions for Multi-Monitor and VR Setups, like simple dual-screen computers, Powerwalls, and Caves. This description must include the sizes and placements of all outputs (displays or projections) in the physical space.
The far goal is to combine User-(Head)-tracking, device tracking for mobile devices, etc. with multi-display environments.
The simplest issue is to be aware of the gap between the screens of a multi-monitor setup because of the borders of the display cases.
The most complex setup would probably be caves with polygonal or curved projection surfaces.
My impression is that every VR-Software out there defines it's own setup-config-crackpot-text-file-format. Is there a common standard or common practice I am missing?

There are no common standards in VR (yet) especially the type you take interest in, but you might want to check out vrui.
The author of that project understands the need for middle software that would do what you want to do: http://doc-ok.org/?p=123. He also has a great article where he considers that for VR the standard camera model could be changed with great benefits, in a way similar to what you seem to ask for in your question: http://doc-ok.org/?p=27
Maybe, once VR gets some popularity and traction thanks to Oculus and all, a need for standaristaion will rise - there already is one for HMDs, check out the OSVR project. But I dont really see it very probable - CAVEs and Powerwall setups won't be so widespread due to costs involved and space required. Using HMDs will probably be a lot cheaper and more portable/handy.
EDIT: I also found this - http://www.middlevr.com/

Related

How to ignore "Accessibility" settings for React Native app?

When in the iOS settings I activate the "Bold Text" in "General -> Accessibility", some texts get cropped because they become larger and thus exceed their intended display area.
Also, if I enlarge all the texts in "Accessibility -> Large Text", suddenly, my app becomes completely unusable because everything is cropped in all directions, the texts take a lot of space.
However, when I enable these settings and go to applications like TikTok, Wishbones, ... I notice that they don't seem to be affected by these system changes.
Having no time to set everything up now to make my application respond to these settings, I was wondering how those applications do to "ignore" those settings?
Preword
I think this is a valid question and I welcome questions like the above as that is partly how I got into accessibility (trying to work around an accessibility error instead of fixing it), but the below 'rant' will probably explain why you got the downvotes.
I also explain a way that you could fix your problem going forward in the section titled 'Proper use of allowFontScaling = false;' so I hope that is helpful to you / others.
Why should you never do as OP asked.
For anyone who stumbles across this question in the future, please read the following before doing the above.
I understand deadlines are deadlines and sometimes you need to push the product live, and if the above is purely to get your Minimal Viable Product to market as a short term fix then go for it, you have to be realistic about your goals and if accessibility wasn't on your radar until the last second then the fix may take too long, but make it priority before stage 2.
However, experience tells me that if you follow the example of TikTok, a company who deliberately suppresses disabled users videos, you have chosen a very bad role model. (I cannot comment on Wishbone as never seen it)
Now never mind the moral reasons of excluding people and disabling a feature they may require to use your App, instead let's talk numbers and lawsuits and see if we can't persuade you to add some time into the development budget to fix this.
Market Size
Globally, at least 2.2 billion people have a vision impairment or
blindness, of whom at least 1 billion have a vision impairment that
could have been prevented or has yet to be addressed.
Source: World Health Organisation (WHO)
With a world population of 7.8 Billion, that means that up to 28% of your user base could require larger text in order to see your App clearly. (The numbers seen high the WHO published but who am I to argue with them!)
If you are disabling font scaling the odds are you also haven't considered the size of tap targets, icons, screen readers etc. so your app is probably completely useless to someone who is blind or partially sighted, as well as people who have accuracy issues (tap target size, often influenced by font-size) such as people with Parkinson's Disease or Cerebral Palsy.
Excluding a quarter of the world's population does not seem like a good idea if you want an App to grow, unless of course you are building the next TikTok and have a good marketing budget to reach the other 75% of the population.
If this is the case then ignore accessibility, unless the law in your country leaves you open to a legal nightmare.....
Legal
Oh this one is going to be the biggest commercial reason to do this, large companies are getting battered by lawsuits in America where their websites aren't accessible, Apps are not going to be far behind.
Now I am not sure which country you are from, but depending on where you live you may actually find that your App is breaking the law.
I myself am from the UK and although the risk of a lawsuit is much lower here I am aware of at least two lawsuits being put together on behalf of people with disabilities against companies whose websites are inaccessible to blind people. We are following America and I have no doubt others will too.
Oh and legislation is in progress for the whole of Europe called the European Accessibility Act, so every EU country will have the same laws soon.
It isn't just people with disabilities.
I work on a 43" monitor positioned about a meter away. Now if Windows decided they would stop font-scaling I would have to completely change my setup as the font size would be too small and i would not be able to read anything.
I have no vision impairment, but the accessibility features built into Windows, web browsers, applications etc. really allow me to work the way I want to.
If I am on a train I often switch accessibility features on to make tap targets bigger so I can press them accurately when the train is buffeting around, contrast better (for glare from the sun so I can see the screen better) etc.
Tried the new 'dark theme' yet? Dark themes started for people who have issues with screen brightness and contrast perception problems. See that thing in front of you that you write on, typewriters / keyboards were invented for blind people and I cannot imagine a world without my keyboard.
Accessibility = a better experience for everyone = happier customers / users = better reviews and recommendations = more customers = more profits = more development work for us devs = everybody wins.
Proper use of allowFontScaling = false;
allowFontScaling = false; is a very useful thing to add to your toolbelt.
As OP has discovered sometimes a layout does not work when someone changes the font size in their system settings.
Obviously you should design your layout to accommodate larger text, but this will often ruin a pretty design if it hasn't been considered from the start.
Educating your design team takes time so it is often left to us as developers to fix these problems until company policy changes (which is easy to do if you point out the legal implications, directors tend to wake up when you mention multi-million pound lawsuits and a larger audience!)
Instead if you encounter the same problem as OP and there is no way to fix your layout you could do the following and still comply with WCAG 2.1 and offer your users a feature they may require to comfortably use your App / Website.
Disable automatic font scaling as suggested in the answer given.
Add an accessibility settings section to your App / Website.
Add an option to control font size, font weight etc. there
If the font size / weight is adjusted to a size that does not work with your 'default' layout, enable a secondary layout that will accommodate this font size / weight. Allow up to 200% font scaling in this secondary layout (it can actually be quite fun trying to accommodate such large fonts on a small screen - requires some creativity!)
While the secondary layout may not be as nice it does at least mean that people can use your Website / App if they require a larger font size / heavier font weight. It increases your potential customer base and helps you comply with relevant laws.
Conclusion
Put accessibility on your roadmap today.
If you build into your design process you won't have to resort to terrible ideas like disabling font scaling, ignoring accessibility errors etc. It will also save you a lot of effort later trying to reverse-engineer your App / Website in order to accommodate features that people need.
If you are near the end of development like OP, add it to your development plans as a priority item going forward to increase the number of potential users of your App and to avoid legal issues.
/End Rant
I hope it helps at least one person see the benefits of accessibility.
One thing you can do is to disable font scaling for Text like below which will make sure that your font size is not affected by Accessibility changes.
Text.defaultProps = Text.defaultProps || {};
Text.defaultProps.allowFontScaling = false;

Shape (preferably human) recognition API for use with standard webcam

I am interested in getting into user interaction/shape detection with a simple usb webcam. I can use multiple webcams, but don't want to be restricted to using something like the kinect sensor. My detection cameras need to be set up on either side of a helmet (or if an individual one, on top). I have found some, but they don't really have the functionality I need and most are angled towards facial recognition. I need to be able to detect a basic human skeletal structure and determine if something is obstructing it. I would really rather be able to do it without using any sort of marker system on the target person. I would like for it to be able to target multiple structures. Obviously I am willing to do tweaking if necessary, but want to see how close I can get to what I need before I rebuild the wheel. I am trying to design an ai system that can determine how many people are in an area and where they are.
Doubt there will be anything like this since Microsoft spent a ton of money on the R&D for Kinect and it's probably all locked behind an NDA. I'm also guessing there's a lot of hardware within the Kinect that is not available in a standard webcam.
The closest thing that I could find to what you're looking for is the OpenKinect project, might be a good place to start your research.

How to make a 2D Soft-body physics engine?

The definition of rigid body in Box2d is
A chunk of matter that is so strong
that the distance between any two bits
of matter on the chunk is completely
constant.
And this is exactly what i don't want as i would like to make 2D (maybe 3D eventually), elastic, deformable, breakable, and even sticky bodies.
What I'm hoping to get out of this community are resources that teach me the math behind how objects bend, break and interact. I don't care about the molecular or chemical properties of these objects, and often this is all I find when I try to search for how to calculate what a piece of wood, metal, rubber, goo, liquid, organic material, etc. might look like after a force is applied to it.
Also, I'm a very visual person, so diagrams and such are EXTREMELY HELPFUL for me.
================================================================================
Ignore these questions, they're old, and I'm only keeping them here for contextual purposes
1.Are there any simple 2D soft-body physics engines out there like this?
preferably free or opensource?
2.If not would it be possible to make my own without spending years on it?
3.Could i use existing engines like bullet and box2d as a start and simply transform their code, or would this just lead to more problems later, considering my 1 year of programming experience and bullet being 3D?
4.Finally, if i were to transform another library, would it be the best change box2D's already 2d code, Bullet's already soft code, or mixing both's source code?
Thanks!
(1) Both Bullet and PhysX have support for deformable objects in some capacity. Bullet is open source and PhysX is free to use. They both have ports for windows, mac, linux and all the major consoles.
(2) You could hack something together if you really know what you are doing, and it might even work. However, there will probably be bugs unless you have a damn good understanding of how Box2D's sequential impulse constraint solver works and what types of measures are going to be necessary to keep your system stable. That said, there are many ways to get deformable objects working with minimal fuss within a game-like environment. The first option is to take a second (or higher) order approximation of the deformation. This lets you deal with deformations in much the same way as you deal with rigid motions, only now you have a few extra degrees of freedom. See for example the following paper:
http://www.matthiasmueller.info/publications/MeshlessDeformations_SIG05.pdf
A second method is pressure soft bodies, which basically model the body as a set of particles with some distance constraints and pressure forces. This is what both PhysX and Bullet do, and it is a pretty standard technique by now (for example, Gish used it):
http://citeseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.4.2828%26rep%3Drep1%26type%3Dpdf
If you google around, you can find lots of tutorials on implementing it, but I can't vouch for their quality. Finally, there has been a more recent push to trying to do deformable objects the `right' way using realistic elastic models and finite element type approaches. This is still an area of active research, so it is not for the faint of heart. For example, you could look at any number of the papers in this year's SIGGRAPH proceedings:
http://kesen.realtimerendering.com/sig2011.html
(3) Probably not. Though there are certain 2D style games that can work with a 3D physics engine (for example top down type games) for special effects.
(4) Based on what I just said, you should probably know the answer by now. If you are the adventurous sort and got some time to kill and the will to learn, then I say go for it! Of course it will be hard at first, but like anything it gets easier over time. Plus, learning new stuff is lots of fun!
On the other hand, if you just want results now, then don't do it. It will take a lot of time, and you will probably fail (a lot). If you just want to make games, then stick to the existing libraries and build on whatever abstractions it provides you.
Quick and partial answer:
rigid body are easy to model due to their property (you can use physic tools, like "Torseur+ (link on french on wikipedia, english equivalent points to screw theory) to modelate forces applying at any point in your element.
in comparison, non-solid elements move from almost solid (think very hard rubber : it can move but is almost solid) to almost liquid (think very soft ruber, latex). Meaning that dynamical properties applying to that knd of objects are much complex and depend of the nature of the object
Take the example of a spring : it's easy to model independantly (f=k.x), but creating a generic tool able to model that specific case is a nightmare (especially if you think of corner cases : extension is not infinite, compression reaches a lower point, material is non linear...)
as far as I know, when dealing with "elastic" materials, people do their own modelisation for their own purpose (a generic one does not exist)
now the answers:
Probably not, not that I know at least
not easily, see previously why
Unless you got high level background in elastic materials, I fear it's gonna be painful
Hope this helped
Some specific cases such as deformable balls can be simulated pretty well using spring-joint bodies:
Here is an implementation example with cocos2d: http://2sa-studio.blogspot.com/2014/05/soft-bodies-with-cocos2d-v3.html
Depending on the complexity of the deformable objects that you need, you might be able to emulate them using box2d, constraining rigid bodies with joints or springs. I did it in the past using a box2d clone for xna (farseer) and it worked nicely. Hope this helps.
The physics of your question breaks down into two different topics:
Inelastic Collisions: The math here is easy, and you could write a pretty decent library yourself without too much work for 2D points/balls. (And with more work, you could learn the physics for extended bodies.)
Materials Bending and Breaking: This will be hard. In general, you will have to model many of the topics in Mechanical Engineering:
Continuum Mechanics
Structural Analysis
Failure Analysis
Stress Analysis
Strain Analysis
I am not being glib. Modeling the bending and breaking of materials is, in general, a very detailed and varied topic. It will take a long time. And the only way to succeed will be to understand the science well enough that you can make clever shortcuts in limiting the scope of the science you need to model in your game.
However, the other half of your problem (modeling Inelastic Collisions) is a much more achievable goal.
Good luck!

Optimal image size for browser rendering

The question
Is there a known benchmark or theoretical substantiation on the optimal (rendering speed wise) image size?
A little background
The problem is as follows: I have a collection of very large images, thousands of pixels wide in each dimension. These should be presented to the user and manipulated somehow. In order to improve performance of my web app, I need to slice them. And here is where my question arises: what should be the dimensions of these slices?
You can only find out by testing, every browser will have different performance parameters and your user base may have anything from a mobile phone to a 16-core Xeon desktop. The larger determining factor may actually be the network performance in loading new tiles which is completely dependent upon how you are hosting and who your users are.
As the others already said, you can save a lot of research by duplicating the sizes already used by similar projects: Google Maps, Bing Maps, any other mapping system, not forgetting some of the gigapixel projects like gigapan.
It's hard to give a definitive dimension, but I successfully used 256x256 tiles.
This is also the size used by Microsoft Deep Zoom technology.
In absence of any other suggestions, I'd just use whatever Google Maps is using. I'd imagine they would have done such tests.

Commercial uses for grid computing?

I keep hearing from associates about grid computing which, from what I can gather, is highly distributed stuff along the lines of SETI#Home.
Is anyone working on these sort of systems for business use? My interest is in figuring out if there's a commercial reason for starting software development in this field.
Rendering Farms such as Pixar
Model Evaluation e.g. weather, financials, military
Architectural Engineering e.g. earthquakes.
To list a few.
Grid computing is really only needed if you have a lot of WORK that needs to be done, like folding proteins, otherwise a simple server farm will likely be plenty.
Obviously Google are major users of Grid Computing; all their search service relies on it, and many others.
Engines such as BigTable are based on using lots of nodes for storage and computation. These are commercially very useful because they're a good alternative to a small number of big servers, providing better redundancy and cost effective scaling.
The downside is that the software is fiendishly difficult to write, but Google seem to manage that one ok :)
So anything which requires big storage and/or lots of computation.
I used to work for these guys. Grid computing is used all over. Anyone who makes computer chips uses them to test designs before getting physical silicon cut. Financial websites use grids to calculate if you qualify for that loan. These days they are starting to replace big iron in a lot of places, as they tend to be cheaper to maintain over the long term.