08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Best Practices for Webcam Augmented Reality
1. Best Practices For Webcam AR
Blake Callens
The Importance of Practicality
Using the Flex SDK
Speeding Up Data Structure Use
Integration with Preexisting CMS and HTTP Services
Integrating Motion Capture
Flash AR Engine Porting and Development
2. About Me
Blake Callens
Sr. Software Engineer, Zugara
@blakecallens
Sr. Developer on:
WSS, Fashionista, ZugMo, ZugSTAR, ZBR (in development)
Creator of ARtisan - Flex FLARToolkit and Papervision3D Manager
5. The Importance of Practicality
• Nobody reuses a gimmick
• Over-saturation of services
6. The Importance of Practicality
• Nobody reuses a gimmick
• Over-saturation of services
• Stagnation of the industry
7. The Importance of Practicality
• Nobody reuses a gimmick
• Over-saturation of services
• Stagnation of the industry
• Sustainable business models
8. The Importance of Practicality
• Nobody reuses a gimmick
• Over-saturation of services
• Stagnation of the industry
• Sustainable business models
• Emergence of the NUI
9. Using the Flex SDK
MXML Components
AS3
var loader:Loader = new Loader();
loader.load(new URLRequest(”http://yoursite.com/image.png”));
loader.x = 10;
loader.y = 10;
loader.addEventListener(MouseEvent.CLICK, onClick);
addChild(loader);
Flex
<mx:Image id=”image” source=”http://yoursite.com/image.png” x=”10” y=”10” click=”onClick(event)”/>
10. Using the Flex SDK
“Programmer’s Flash”
Flash IDE
Flex SDK
• Standard application components
• CSS Integration
• Command line compilation
• Full Adobe support
• 100% free to use
13. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
14. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
15. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
• Use subscriber functions whenever possible
16. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
• Use subscriber functions whenever possible
• Arrays should only be used for holding multiple object types
17. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
• Use subscriber functions whenever possible
• Arrays should only be used for holding multiple object types
• Initialize arrays as: array:Array = [];
18. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
• Use subscriber functions whenever possible
• Arrays should only be used for holding multiple object types
• Initialize arrays as: array:Array = [];
• Use state constants to switch between dynamic layouts
19. Speeding Up Data Structure Use
aka (speed tweaks)
• Use as few event listeners as possible
• Pass related variables through custom events
• Use subscriber functions whenever possible
• Arrays should only be used for holding multiple object types
• Initialize arrays as: array:Array = [];
• Use state constants to switch between dynamic layouts
• Manually use System.gc();
22. Integration with Existing
CMS and HTTP Services
• Pass relative and absolute URLs through FlashVars
• Create a custom class(es) to handle all communications
23. Integration with Existing
CMS and HTTP Services
• Pass relative and absolute URLs through FlashVars
• Create a custom class(es) to handle all communications
• Flex HTTPService class
24. Integration with Existing
CMS and HTTP Services
• Pass relative and absolute URLs through FlashVars
• Create a custom class(es) to handle all communications
• Flex HTTPService class
• Parse all data before sending it to the main application
25. Integration with Existing
CMS and HTTP Services
• Pass relative and absolute URLs through FlashVars
• Create a custom class(es) to handle all communications
• Flex HTTPService class
• Parse all data before sending it to the main application
• Utilize SWC library creation whenever possible
26. Integration with Existing
CMS and HTTP Services
• Pass relative and absolute URLs through FlashVars
• Create a custom class(es) to handle all communications
• Flex HTTPService class
• Parse all data before sending it to the main application
• Utilize SWC library creation whenever possible
• Maintain embeddability whenever possible
30. Integrating Motion Capture
• Technically AR
• Moving the user away from the keyboard
• Potentially processor intensive
31. Integrating Motion Capture
• Technically AR
• Moving the user away from the keyboard
• Potentially processor intensive
• Pushes applications towards NUI
36. Integrating Motion Capture
• Working in 2D
• Make room for the user
• Keep everything in Reach
• Easy to understand controls
37. Integrating Motion Capture
• Working in 2D
• Make room for the user
• Keep everything in Reach
• Easy to understand controls
• Motion speed calculation
39. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
40. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
41. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
42. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
•BitmapData manipulation
43. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
•BitmapData manipulation
•Extensive third party libraries
44. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
•BitmapData manipulation
•Extensive third party libraries
• Think outside of the box
45. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
•BitmapData manipulation
•Extensive third party libraries
• Think outside of the box
• Know when to stay vigilant and when to move on
46. Flash AR Engine
Porting and Development
• Take advantage of ActionScript features
•Descriptive variable names
•Fast drawing functionality
•BitmapData manipulation
•Extensive third party libraries
• Think outside of the box
• Know when to stay vigilant and when to move on
• Think about how other developers will interact with your engine