Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Tuesday, 24 November 2020

How Verge Aero’s drones pulled off an Election Day win as big as Biden’s

2020 has felt excessively long, and Election Day was no different. A drawn-out, five-day statistics exam for the nation, the process of naming our 46th president was met with exhaustion and, for many, elation when Joe Biden finally took the stage in Wilmington, Delaware, to deliver his acceptance speech. The speech would have been the most noteworthy moment of the evening if only there hadn’t been that drone show, wowing both America and Biden himself, whose wide-eyed look of awe was immediately meme-ified.

The patriotic display was the work of Verge Aero, a small Philadelphia-based startup with six employees that’s pulled in pretty big clients, including the Philadelphia Eagles, Microsoft and, now, the crowning achievement for President-elect Biden’s campaign. With software and drones designed in-house specifically for light-show entertainment purposes, Verge Aero not only cornered the market on making impressive displays more accessible, but gave many who watched at home their first look at the precision of modern aerial imagery.

Verge Aero CEO Nils Thorjussen, an industry leader with a background in developing lighting solutions, led his team on three years of research and development to simplify and perfect the drone light show process. By building everything in-house, the company emerged with a fully integrated system, allowing the ease and execution befitting of large-scale events. When used in tandem, the design software and customized drones make producing an aerial display safer, easier and more cost-effective, not to mention extremely nimble.

Light drone show displays the number 46 on the evening of Election Day

Image Credits: Strictly FX

Given only two weeks to put Biden’s victory show together, Verge Aero collaborated with Strictly FX on a fireworks-laden display of 200 drones spelling out Biden’s campaign logo, “President Elect” and a map outline of the United States. Verge Aero’s Design Studio was created specifically for challenges like these, simplifying the entire process to build last-minute, large-scale shows with ease.

By eliminating hand-off from one platform to another, which can increase error risk, the all-in-one software suite automatically handles anti-collision calculations and flags issues and fixes for human error. Because of this, Verge Aero’s software application guarantees flight paths will not intersect. Simply put, their drones will not collide — and if you’re going to fly a swarm of drones near the president-elect, this is probably who you want doing it.

Gaining security clearances and governmental approvals may have been arduous, but the election night presentation was precisely what Verge Aero was created for: high adaptability that is executed flawlessly. (Thorjussen was unable to speak candidly about the process of Biden’s drone show when we talked, but further details about Verge Aero’s involvement have since been made public.)

Reticent to divulge specifics of how one pulls off a show of this kind, it’s easy to see the challenges involved in gaining clearance to fly hundreds of tiny robots within striking distance of the future leader of the free world. Not only was there pressure of a high-security, high-profile drone show, but one that had no guaranteed launch date. “A lot of our work is in highly unstructured changing environments, so we’re kind of used to rolling with the punches,” says Thorjussen; for the Biden display, their special effects team was on standby for nearly a week, from Tuesday through Saturday night.

Still, with an average Verge Aero drone show taking two people 45 minutes to set up 100 drones, it’s likely that prep time for Biden’s light display was less than two hours. Tight software-hardware integration removes the need for individualized flight paths and starting locations, a seamless change that allows show setup to be enacted more quickly.

Each drone also has a full copy of the show, not just their individualized flight pattern, and can be placed at any start position while software automatically checks placement and readiness.

“The reason it took us so long to get to where we are today, just in terms of development, is we wanted to create this toolkit for the designers that I’m used to working with so that they can operate the way they want to,” Thorjussen says. “One piece of that is being able to deploy quickly and to make changes quickly and on the fly, so that you can match the needs of the production as they evolve.”

Drone light show displaying US map on the evening of Election Day

Image Credits: Strictly FX

The first and only time Verge Aero flew the Biden drone show was the night of the acceptance speech. There was no need for a dress rehearsal, because there rarely is. Thorjussen stresses that Verge Aero’s pre-show renderings are pretty much identical to what you’d see in real life — a WYSIWYG ethos baked into their unique design.

“[I said] we’re gonna get this right from the beginning, do it from first principles, and actually create a proper infrastructure to do everything that we want to do — or anticipate wanting to do — so that we don’t get started and hit a roadblock because we can’t support what our designers want to do,” says Thorjussen.

Like their custom software, Verge Aero also developed their own drones, but not necessarily by choice. “It’s simply because we couldn’t go out and buy what we needed,” he says. “We’ve invested in some of the technology to make it super reliable, particularly with regards to communication, so that necessitated us making our own drone.”

Verge Aero worked toward developing a workhorse that could do a lot of tasks reliably, providing the clearly identifiable designs on display at Biden’s acceptance speech.

“We made two significant design decisions up front,” explains Thorjussen. “We focused on high accuracy in terms of positioning and… having a lot of light output. And when you have those two things, then you can do shows with fewer drones, because you have more precision.

Intel may be the household name, but Verge Aero is hot on its heels with a product that’s more nimble, easier to execute and much more dynamic. Like their in-house software, Verge Aero’s X1 drones are specifically created for light shows — no cameras, a “blindingly bright” LED light source — with top speed, show duration and wind tolerance nearly double that of the Intel Shooting Star.

Developed to be a workhorse specifically used in lighting displays, the X1 is heavier than the Shooting Star but a better and safer fit for entertainment purposes than Intel’s drones, and not just because theirs once fell on a TechCrunch writer’s head.

Still, it’s their multidisciplinary collaboration with Strictly FX that made this month’s rousing display so memorable — a testament for where Verge Aero’s leader sees their work heading in the future.

“Just doing drones, ultimately, will be boring,” says Thorjussen. “If you just do what I call ‘marching band content’ — you do Logo A to Logo B to Logo C — it’s not so interesting over time. Drones are just one tool in the arsenal of people putting on productions…the more elements, the more compelling a show will be.”

It seems to have been proven true — not just by the more than 35 million households watching at home but also President-elect Biden’s gleeful reaction to seeing it overhead. “I think that’s part of what made that a special moment,” says Thorjussen. “Needless to say, my phone exploded [when the] show was over.

 



from TechCrunch https://ift.tt/3fxVzIZ
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support