CINXE.COM
GeoViz | Devpost
<!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 lte-ie9"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 lte-ie9"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9 lte-ie9"> <![endif]--> <!--[if IE 9]> <html class="no-js lte-ie9"> <![endif]--> <!--[if gt IE 9]><!--> <html lang="en" class="no-js" xmlns:fb="http://ogp.me/ns/fb#" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraphprotocol.org/schema/" itemscope="itemscope" itemtype="http://schema.org/SoftwareApplication"> <!--<![endif]--> <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# challengepost: http://ogp.me/ns/fb/challengepost#"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WCFRZ3V');</script> <!-- End Google Tag Manager --> <script type="text/javascript"> window.awsWafCookieDomainList = ['devpost.com'] </script> <script type="text/javascript" src="https://1723d2289425.us-east-1.sdk.awswaf.com/1723d2289425/7d12beff1256/challenge.js" defer></script> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"f9082fa052","applicationID":"7341974","transactionName":"IQpdERFeXFVVRhpbCw8AHBYMV0ROUUZQQEsRDVwS","queueTime":1,"applicationTime":197,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"f9082fa052",applicationID:"7341974"};;/*! For license information please see nr-loader-rum-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.274.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);function R(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function E(){const e=(0,g.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function _(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var E="api-",_=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(E,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),R(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(E,e,!0,"api")})),h.addPageAction=j(E,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(E,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(E,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var N=r(9417),T=r(8122);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},j={};var k=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function P(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,N.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");j[e]=(0,T.a)(t,S);const r=(0,g.nY)(e);r&&(r.loader_config=j[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,N.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];O||(h.proxy.assets&&(I(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),E(),(0,g.US)("activatedFeatures",k.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=_(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.274.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-gkYkZDAwQ9PwaDXs2YM+rNIdRej1Ac1mupWobRJ8eahQcXz6/sunGZCKklrzi5kWxhOGRZr2tn0rEKuLTXzfAA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={840:0,374:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,T,j],loaderType:"lite"})})()})();</script> <meta name="viewport" content="width=device-width"> <title>GeoViz | Devpost</title> <meta name="description" content="GeoViz - GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context!" /> <meta property="fb:app_id" content="115745995110194" /> <meta property="og:title" content="GeoViz" /> <meta property="og:description" content="GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context!" /> <meta property="og:type" content="challengepost:app" /> <meta property="og:site_name" content="Devpost" /> <meta property="og:image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/002/679/261/datas/medium.jpg" /> <meta property="og:url" content="https://devpost.com/software/geoviz" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@Devpost" /> <meta name="twitter:title" content="GeoViz" /> <meta name="twitter:description" content="GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context!" /> <meta name="twitter:image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/002/679/261/datas/medium.jpg" /> <meta name="twitter:domain" content="devpost.com" /> <meta name="twitter:url" content="https://devpost.com/software/geoviz" /> <meta itemprop="name" content="GeoViz" /> <meta itemprop="description" content="GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context!" /> <meta itemprop="image" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/002/679/261/datas/medium.jpg" /> <meta itemprop="screenshot" content="https://d112y698adiu2z.cloudfront.net/photos/production/software_thumbnail_photos/002/679/261/datas/medium.jpg" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="GKT0aJO4SG8tarJliEn+o+i3XXei54/DTbStfRJL2C3XmPsYu96AowHpzpgrbk8Y9x57xq6PV2sYkBCCCfmwMg==" /> <!--[if gt IE 7]><!--> <script src="https://kit.fontawesome.com/0c13a9f144.js" crossorigin="anonymous"></script> <link rel="stylesheet" media="screen" href="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2-9f6db45ae28c3f142e5568add2b33f098323bf45106215f33013b431cdc2eb86.css" /> <link rel="stylesheet" media="screen" href="https://d2dmyh35ffsxbl.cloudfront.net/assets/home/home_application-0c78d29bcd70511da344dde76d14e5dccf6273f3d519aed15d0d183a69c7792e.css" /> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/modernizr-58ea6a8d3054105c74975c648df5d77247ea7b62e2c3ed291aace5e4139d5eb5.js"></script> <!--<![endif]--> </head> <body id="body-softwares" class="foundation-grid action-show controller-softwares engine-home"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WCFRZ3V" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!--googleoff: anchor--> <!--[if lte IE 9 ]> <div id="unsupported_browser_version" class="persistent_message alert-box alert"> <p> We've detected that you are using an unsupported browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to Internet Explorer 10 or higher. </p> </div> <![endif]--> <!--googleon: anchor--> <header id="global-nav"> <div class="contain-to-grid hide-for-large-up"> <nav class="top-bar" data-topbar> <ul class="title-area top-bar-section"> <li> <a class="toggle-topbar has-dropdown text-center" data-target-menu="world" id="hamburger" href="#"> <i class="ss-icon ss-rows"></i> </a> </li> <li class="name"> <span id="logo"> <a href="https://devpost.com"> <img alt="Devpost" class="show-for-small" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <img alt="Devpost" class="show-for-medium-up" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-25d0005ec83e3b9ef6fce93235bb6d642d7c828f31758ebdb5b7ee87de7d45c3.svg" /> </a></span> </li> <li id="mobile-search-form-container" class="search-form-container mobile hide"> <form class="flex-row align-items-center search-form" action="https://devpost.com/hackathons" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <div class="search-field-wrapper flex-row align-items-stretch mx-4"> <span class="align-items-center"> <i class="fas fa-search search-icon"></i> </span> <input type="search" name="search" id="search" title="Search" placeholder="Search hackathons..." /> <a href="#" class="align-items-center close-icon" data-toggle-mobile-search> <i class="fas fa-times"></i> </a> </div> </form> </li> <li class="right logged-out"> <ul> <li> <a id="main-link" href="https://secure.devpost.com/users/login?ref=top-nav-login"> Log in </a> </li> <li class="show-for-medium-up"> <a id="signup-link" href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"> <span class="inner-button"> Sign up </span> </a> </li> </ul> </li> <li class="search-expand-container mobile right"> <a data-toggle-mobile-search><i class="fas fa-search"></i></a> </li> </ul> <section class="top-bar-section" data-top-nav-menu="user"> </section> <section class="top-bar-section" data-top-nav-menu="world"> <ul class="right"> <li class="divider"></li> <li class="mobile-product-menu panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/public-hackathons"> <img alt="Devpost" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <p class="title bold">Devpost</p> </a> <div class="panel-content"> <a href="https://devpost.com/hackathons">Hackathons</a> <a href="https://devpost.com/software">Projects</a> <a href="https://info.devpost.com/product/public-hackathons">Host a public hackathon</a> </div> </li> <li class="divider"></li> <li class="mobile-product-menu panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/devpost-for-teams"> <img alt="Devpost for Teams" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/dft-logo-mobile-ab66dd5a4f4b2f045ad86d0e5f432dc85974c3d778b353d32213c24ca176484b.svg" /> <p class="title bold">Devpost for Teams</p> </a> <div class="panel-content"> <a href="https://devpost.team">Teams login</a> <a href="https://info.devpost.com/product/devpost-for-teams">Request a demo</a> </div> </li> <li class="divider"></li> <li> <a class="main-link" data-role="discover" href="https://devpost.com/hackathons"> Hackathons </a></li> <li class="divider"></li> <li> <a class="main-link" data-role="projects" href="https://devpost.com/software"> Projects </a></li> <li class="divider"></li> <li> <a class="main-link" href="https://info.devpost.com/blog">Blog</a> </li> <li class="divider"></li> <li> <a class="main-link" data-role="for-orgs" href="https://info.devpost.com"> Host a hackathon </a></li> </ul> </section> </nav> </div> <div class="contain-to-grid hide-for-small hide-for-medium"> <nav class="top-bar" data-topbar> <ul class="title-area"> <li class="name"> <span id="logo"> <a href="https://devpost.com"> <img alt="Devpost" class="show-for-small" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <img alt="Devpost" class="show-for-medium-up" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-25d0005ec83e3b9ef6fce93235bb6d642d7c828f31758ebdb5b7ee87de7d45c3.svg" /> </a></span> </li> </ul> <section class="top-bar-section"> <ul class="left"> <li class="divider"></li> <li class="has-dropdown"> <a class="main-link" href="#">Product</a> <ul class="dropdown float-left"> <li id="floating-menu-wrapper"> <div class="floating-menu"> <div class="panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/public-hackathons"> <img alt="Devpost" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/devpost-logo-mobile-f3aff76bfc0b6ada9bb4ddd773bfc534769ed793f962612804a1e84c305a5f94.svg" /> <div> <p class="title bold">Devpost</p> <p class="subtitle">Grow your developer ecosystem and promote your platform.</p> </div> </a> <div class="panel-content"> <a href="https://devpost.com/hackathons">Hackathons</a> <a href="https://devpost.com/software">Projects</a> <a href="https://info.devpost.com/product/public-hackathons">Host a public hackathon</a> </div> </div> <div class="panel-container"> <a class="panel-product panel-product-content" href="https://info.devpost.com/product/devpost-for-teams"> <img alt="Devpost for Teams" src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2/dft-logo-mobile-ab66dd5a4f4b2f045ad86d0e5f432dc85974c3d778b353d32213c24ca176484b.svg" /> <div> <p class="title bold">Devpost for Teams</p> <p class="subtitle">Drive innovation, collaboration, and retention within your organization.</p> </div> </a> <div class="panel-content"> <a href="https://devpost.team">Teams login</a> <a href="https://info.devpost.com/product/devpost-for-teams">Request a demo</a> </div> </div> </div> </li> </ul> </li> <li class="divider"></li> <li> <a class="main-link" data-role="discover" href="https://devpost.com/hackathons"> Hackathons </a></li> <li class="divider"></li> <li> <a class="main-link" data-role="projects" href="https://devpost.com/software"> Projects </a></li> <li class="divider"></li> <li> <a class="main-link" href="https://info.devpost.com/blog">Blog</a> </li> </ul> <div class="right"> <ul> <li> <a class="main-link" data-role="for-orgs" href="https://info.devpost.com">Host a hackathon</a> </li> <li class="search-expand-container desktop main-link"> <a data-toggle-desktop-search><i class="fas fa-search"></i></a> </li> <li id="desktop-search-form-container" class="search-form-container hide"> <form class="flex-row align-items-center search-form" action="https://devpost.com/hackathons" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <div class="search-field-wrapper flex-row align-items-stretch mx-4"> <span class="align-items-center"> <i class="fas fa-search search-icon"></i> </span> <input type="search" name="search" id="search" title="Search" placeholder="Search hackathons..." /> <a href="#" class="align-items-center close-icon" data-toggle-desktop-search> <i class="fas fa-times"></i> </a> </div> </form> </li> </ul> <ul> <li> <a id="main-link" href="https://secure.devpost.com/users/login?ref=top-nav-login"> Log in </a> </li> <li class="show-for-medium-up"> <a id="signup-link" href="https://secure.devpost.com/users/register?ref_content=signup_global_nav&ref_feature=signup&ref_medium=button"> <span class="inner-button"> Sign up </span> </a> </li> </ul> </div> </section> </nav> </div> </header> <section id="container" class=""> <header class="page-header text-center" id="software-header"> <div class="row"> <div class="small-12 columns"> <h1 id="app-title">GeoViz</h1> <p class="large"> GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context! </p> </div> </div> <div class="row"> <div class="small-12 columns"> <div class="software-likes"> <div data-like="base"> <a class="like-button button radius secondary" href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bsoftware_id%5D=590746&flow%5Bname%5D=like_software&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fgeoviz"> <span class="ss-icon ss-heart"></span> Like <span class="side-count">12</span> </a> </div> </div> <a id="software-comment-button" class="button radius comment-button" href="/software/geoviz#updates"> <span class="ss-icon ss-quote"></span> Comment </a> </div> </div> </header> <nav id="software-nav"> <div class="row"> <div class="large-12 columns"> <ul class="left no-bullet"> <li> <h4> <a class="active" href="/software/geoviz">Story</a> </h4> </li> <li> <h4> <a href="/software/geoviz#updates">Updates</a> </h4> </li> </ul> </div> </div> </nav> <article id="app-details" class="content-section"> <div class="row"> <div class="large-9 columns" id="app-details-left"> <div id="gallery"> <ul data-slick="true"> <li> <div class="flex-video "> <iframe type="text/html" width="660" height="371" src="https://www.youtube.com/embed/aYxi_gg_Mf4?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent" allowfullscreen="allowfullscreen" frameborder="0" allowscriptaccess="always" webkitAllowFullScreen="true" wmode="transparent" mode="transparent" class="video-embed"></iframe> </div> </li> <li class="text-center"> <a data-lightbox="2679265" data-title="Logo" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/265/datas/original.jpg"> <img alt="GeoViz – screenshot 1" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/265/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i>Logo</i> </p> </li> <li class="text-center"> <a data-lightbox="2679258" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/258/datas/original.jpg"> <img alt="GeoViz – screenshot 2" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/258/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> <li class="text-center"> <a data-lightbox="2679271" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/271/datas/original.jpg"> <img alt="GeoViz – screenshot 3" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/271/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> <li class="text-center"> <a data-lightbox="2679272" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/272/datas/original.jpg"> <img alt="GeoViz – screenshot 4" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/272/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> <li class="text-center"> <a data-lightbox="2679273" href="https://d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/273/datas/original.jpg"> <img alt="GeoViz – screenshot 5" class="software_photo_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/thumbnail-placeholder-8c916ef4da99a222ce6ece077c71c7e282f071f830747b2abb5718018cbfa699.gif';" src="//d112y698adiu2z.cloudfront.net/photos/production/software_photos/002/679/273/datas/gallery.jpg" /> </a> <span class="expand-tag"><i class="fas fa-expand"></i></span> <p> <i></i> </p> </li> </ul> </div> <div> <h2>Inspiration</h2> <p>GeoViz was inspired by the limitations in conventional architectural visualization tools. We aimed to redefine how architects collaborate and visualize designs by merging augmented reality (AR) with real-time collaborative modeling. Our vision was to offer a tool that bridges the gap between static representations and immersive experiences.</p> <h2>What it does</h2> <p>GeoViz revolutionizes architectural design by enabling collaborative modeling in augmented reality. It leverages Google's Geospatial Creator and photorealistic 3D tiles, allowing users to create, modify, and visualize architectural designs in their intended context. The platform facilitates real-time collaboration, letting multiple users contribute to designs and view them in AR on location.</p> <h2>How we built it</h2> <p>Our journey began with the experience gained from winning Google Maps' with Maps hackathon. Leveraging this, we utilized Google's Geospatial Creator and focused on creating realistic 3D models. We developed intuitive tools for floor plans, walls, furniture, and more, ensuring ease of use for collaborators. The project heavily relied on AR technologies for on-site visualization through a mobile app.</p> <h2>Challenges we ran into</h2> <p>Balancing realism in architectural design while ensuring real-time collaboration in AR was a significant challenge. Achieving spatial accuracy, maintaining detail, and synchronizing changes among multiple users posed technical hurdles. Integrating AR visualization seamlessly with mobile devices for on-site experiences presented complexities.</p> <h2>Accomplishments that we're proud of</h2> <p>Developing GeoViz as a robust tool for collaborative AR modeling is a significant accomplishment. Overcoming technical challenges to create a platform that empowers architects to visualize designs in their intended context in real-time is a source of pride for our team.</p> <h2>What we learned</h2> <p>The development of GeoViz taught us the intricacies of AR technologies, geospatial placement, and real-time synchronization. We gained insights into user interactions in AR spaces and learned to navigate complexities in merging realism with interactivity.</p> <h2>What's next for GeoViz</h2> <p>The future for GeoViz holds endless possibilities. We aim to enhance collaboration features, expand asset libraries, and integrate advanced AI for design assistance. Additionally, we plan to explore applications beyond architecture, such as event planning and solar panel placement, maximizing GeoViz's potential.</p> </div> <div id="built-with" class=""> <h2>Built With</h2> <ul class="no-bullet inline-list"><li><span class="cp-tag">3d</span></li><li><span class="cp-tag recognized-tag"><a href="https://devpost.com/software/built-with/android">android</a></span></li><li><span class="cp-tag">geospatial</span></li><li><span class="cp-tag recognized-tag"><a href="https://devpost.com/software/built-with/google--2">google</a></span></li><li><span class="cp-tag">maps</span></li><li><span class="cp-tag">photorealistic</span></li></ul> </div> </div> <aside class="large-3 columns" id="app-details-right"> <div id="submissions" class="section"> <h4 class="clearfix"> Submitted to </h4> <ul class="software-list-with-thumbnail"> <li> <figure class="software-list-thumbnail challenge_avatar"> <a href="https://googlesimmersive.devpost.com/"><img alt="image" class="thumbnail_image image-replacement" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/challenge_thumbnails/002/602/058/datas/medium.png" /></a> </figure> <div class="software-list-content"> <p> <a href="https://googlesimmersive.devpost.com/">Google’s Immersive Geospatial Challenge</a> </p> <ul class="no-bullet"> <li> <span class="winner label radius small all-caps">Winner</span> AR | Best of Productivity & Business </li> </ul> </div> </li> </ul> </div> <section id="app-team"> <h4 class="clearfix"> Created by </h4> <ul class="no-bullet"> <li class="software-team-member" itemprop="member"> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/dvijesh-raghav"><img alt="Captain Code" class="software-member-photo user-photo facebook_avatar_image image-replacement" title="Captain Code" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxZfv-QTtuLmH9_8GeLjjdJVi4VV9QcVdGi5RfK6ng=s96-c?height=180&width=180" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/dvijesh-raghav">Captain Code</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="1257056"></span> <br> <small></small> </div> </div> </li> <li class="software-team-member" itemprop="member"> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/prateekpanwarengine"><img alt="Prateek Panwar" class="software-member-photo user-photo facebook_avatar_image image-replacement" title="Prateek Panwar" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxaLA-90IN6BevxZ833xsdRe7zAflCsor9lWyltlaA=s96-c?height=180&width=180" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/prateekpanwarengine">Prateek Panwar</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="1197016"></span> <br> <small></small> </div> </div> </li> <li class="software-team-member" itemprop="member"> <div class="row"> <div class="small-2 large-4 columns"> <figure> <a class="user-profile-link" href="https://devpost.com/jenil-panchal10"><img alt="Jenil Panchal" class="software-member-photo user-photo facebook_avatar_image image-replacement" title="Jenil Panchal" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxa_uG9C8j3N--N-Z3Em3xdBXgW5VtymFShwC-tj=s96-c?height=180&width=180" /></a> </figure> </div> <div class="small-10 large-8 columns"> <a class="user-profile-link" href="https://devpost.com/jenil-panchal10">Jenil Panchal</a> <span class="follow-button-wrapper" data-context="software-detail" data-layout="condensed" data-follow-through-id="1197297"></span> <br> <small></small> </div> </div> </li> </ul> </section> </aside> </div> </article> <section id="share-and-like"> <div class="row"> <div class="small-12 columns"> <div class="clearfix"> <div class="left"> <div class="software-likes"> <div data-like="base"> <a class="like-button button radius secondary" href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bsoftware_id%5D=590746&flow%5Bname%5D=like_software&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fgeoviz"> <span class="ss-icon ss-heart"></span> Like <span class="side-count">12</span> </a> </div> <span class="like-counts"> 12 people like this: </span> <ul class="like-users inline-list"> <li> <a class="user-profile-link" href="https://devpost.com/saxenagautam18"><img alt="Gautam Saxena[F]" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Gautam Saxena[F]" data-tooltip="69950138985060" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocIO9RY4S95BGI8yvfhdkmThw-EUqjCL12h5xKGV7Vd7Fl0=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/srajalsawner16"><img alt="Srajal Sawner" class="user-photo has-tip user-photo gravatar_image image-replacement" title="Srajal Sawner" data-tooltip="69950138984840" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://www.gravatar.com/avatar/2440d22555a980ceb4310f14a2eb9cd3?d=https%3A%2F%2Fd2dmyh35ffsxbl.cloudfront.net%2Fassets%2Fdefaults%2Fno-avatar-32.png&s=32" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/ss9575a"><img alt="Shashank Shinde" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Shashank Shinde" data-tooltip="69950138984600" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocI7z8cl1KaXohQ7GP0JNMdZ4OIDhM_lGGK8qWmFGX8Cx74=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/customuser3000"><img alt="CustomUser30 00" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="CustomUser30 00" data-tooltip="69950138984040" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocKx6a5MhLwshlvK69orsDWmjesOZ16_iOgL44_igOFL=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/tsotros"><img alt="Manolis Tsotros" class="user-photo has-tip user-photo photo_image image-replacement" title="Manolis Tsotros" data-tooltip="69950138983400" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="//d112y698adiu2z.cloudfront.net/photos/production/user_photos/002/368/042/datas/medium.jpg" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/rathorepratham786"><img alt="Pratham Rathore" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Pratham Rathore" data-tooltip="69950138982780" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocJz7Dcem92rb-8HOt_sh_soSszmYWynJupaM3yCwosTHNah=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/parmarsiddharth1008"><img alt="Siddharth parmar" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Siddharth parmar" data-tooltip="69950138982440" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocLfQIGgQSopt9xs0a8ifnS4bHKB_2WcPdtl9HzQExXU=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/dhairyajain29"><img alt="Dhairya Jain" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Dhairya Jain" data-tooltip="69950138957160" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/ACg8ocKhlWs6BC1El7AnTESfoGC_PCOUKyTbw2XjfMSo4W7UIW0=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/jenil-panchal10"><img alt="Jenil Panchal" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Jenil Panchal" data-tooltip="69950138956960" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxa_uG9C8j3N--N-Z3Em3xdBXgW5VtymFShwC-tj=s96-c?type=square" /></a> </li> <li> <a class="user-profile-link" href="https://devpost.com/dvijesh-raghav"><img alt="Captain Code" class="user-photo has-tip user-photo facebook_avatar_image image-replacement" title="Captain Code" data-tooltip="69950138956780" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxZfv-QTtuLmH9_8GeLjjdJVi4VV9QcVdGi5RfK6ng=s96-c?type=square" /></a> </li> </ul> <a data-likes-modal="open" href="/software/geoviz/likes">+ 2 more</a> <div class="reveal-modal small" data-reveal data-likes-modal="modal" id="extra-likers-modal"> </div> </div> </div> <div class="right hide-for-small"> <div id="software-share" class="hide" data-add-this-buttons="true"> Share this project: <ul class="h-nav clearfix inline-list" id="social-links"> <li id="promote-twitter"> <div class="social-icon"> <div class="addthis_32x32_style addthis_toolbox addthis_default_style" addthis:url="https://devpost.com/software/geoviz?utm_campaign=portfolio-share&utm_medium=twitter&utm_source=cp" addthis:title="Check out GeoViz" addthis:description="https://devpost.com/software/geoviz"> <a class="addthis_button_twitter" tw:count="false" tw:counturl="https://devpost.com/software/geoviz" tw:url="https://devpost.com/software/geoviz?utm_campaign=portfolio-share&utm_medium=twitter&utm_source=cp" tw:via="Devpost" tw:text="Check out GeoViz"> </a> </div> </div> </li> <li id="promote-fb-li"> <div class="social-icon"> <div class="addthis_32x32_style addthis_toolbox addthis_default_style" addthis:url="https://devpost.com/software/geoviz" addthis:title="GeoViz" addthis:description=""> <div class="custom_images"> <a class="addthis_button_facebook" fb:like:show_faces="false"> </a> </div> </div> </div> </li> <li id="promote-reddit-li"> <div class="social-icon"> <a class="addthis_32x32_style addthis_button_reddit" addthis:url="https://devpost.com/software/geoviz?utm_campaign=portfolio-share&utm_medium=reddit&utm_source=cp" addthis:title="GeoViz" ></a> </div> </li> </ul> </div> </div> </div> </div> </div> </section> <article class="content-section"> <div class="row"> <div class="large-12 columns software-updates"> <h2 id="updates">Updates</h2> <article class="content-section software-update with-sidebar" data-commentable-id="404633"> <div class="row"> <div class="large-8 small-12 columns"> <div data-region="actions"></div> <div class="media"> <div class="media-left"> <a class="update-user-avatar user-profile-link" href="https://devpost.com/prateekpanwarengine"><img alt="Prateek Panwar" class="user-avatar user-photo facebook_avatar_image image-replacement" title="Prateek Panwar" onerror="this.onerror=null;this.src='https://d2dmyh35ffsxbl.cloudfront.net/assets/defaults/no-avatar-100-b164b29ca37cbce6b6dbcf4d61d40ba7a3081dfd121a32e2a773eb8f018f0a1f.png';" src="https://lh3.googleusercontent.com/a/AGNmyxaLA-90IN6BevxZ833xsdRe7zAflCsor9lWyltlaA=s96-c?height=180&width=180" /></a> </div> <div class="media-content"> <p class="author small"> <a class="user-profile-link" href="https://devpost.com/prateekpanwarengine">Prateek Panwar</a> started this project <span class="light-text"> — <a class="timestamp light-text" href="/software/geoviz/updates/404633"> <time class="timeago" datetime="2023-11-20T17:08:04-05:00"> Nov 20, 2023 05:08 PM EST </time> </a> </span> </p> <p><i>Leave feedback in the comments!</i></p> <section class="software-update-comments" data-layout="comments"> <div data-region="load-more"></div> <div data-region="comments"></div> <p class="join-the-conversation"> <strong><a href="https://secure.devpost.com/users/login">Log in</a></strong> or <strong><a href="https://secure.devpost.com/users/register?flow%5Bdata%5D%5Bcommentable_id%5D=404633&flow%5Bname%5D=comment_on_software_update&return_to=https%3A%2F%2Fdevpost.com%2Fsoftware%2Fgeoviz">sign up for Devpost</a></strong> to join the conversation. </p> </section> </div> </div> </div> <div class="columns"></div> </div> </article> </div> </div> </article> </section> <footer id="devpost-footer"> <div class="row body"> <div class="small-6 large-3 columns with-bottom-margin"> <nav> <h4>Devpost</h4> <ul> <li><a href="https://info.devpost.com/about">About</a></li> <li><a href="https://info.devpost.com/careers">Careers</a></li> <li><a href="https://info.devpost.com/contact">Contact</a></li> <li><a href="https://help.devpost.com/">Help</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns with-bottom-margin"> <nav> <h4>Hackathons</h4> <ul> <li><a href="https://devpost.com/hackathons">Browse hackathons</a></li> <li><a href="https://devpost.com/software">Explore projects</a></li> <li><a href="https://info.devpost.com">Host a hackathon</a></li> <li><a href="https://info.devpost.com/guides">Hackathon guides</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns"> <nav> <h4>Portfolio</h4> <ul> <li><a href="https://devpost.com/portfolio/redirect?page=projects">Your projects</a></li> <li><a href="https://devpost.com/portfolio/redirect?page=hackathons">Your hackathons</a></li> <li><a href="https://devpost.com/settings">Settings</a></li> </ul> </nav> </div> <div class="small-6 large-3 columns"> <nav> <h4>Connect</h4> <ul class="social-links"> <li> <a href="https://twitter.com/devpost"> <div class="icon"> <i class="fab fa-twitter"></i> </div> <span> Twitter </span> </a> </li> <li> <a href="https://discord.com/invite/HP4BhW3hnp"> <div class="icon"> <i class="fab fa-discord"></i> </div> <span> Discord </span> </a> </li> <li> <a href="https://www.facebook.com/devposthacks" target="_blank"> <div class="icon"> <i class="fab fa-facebook-f"></i> </div> <span> Facebook </span> </a> </li> <li> <a href="https://www.linkedin.com/company/devpost/" target="_blank"> <div class="icon"> <i class="fab fa-linkedin-in"></i> </div> <span> LinkedIn </span> </a> </li> </ul> </nav> </div> </div> <div class="legal-bar-container"> <nav class="row"> <div class="columns"> <div class="legal-bar"> <div class="copyright-notice">© 2024 Devpost, Inc. All rights reserved.</div> <ul> <li><a href="https://info.devpost.com/legal/community-guidelines">Community guidelines</a></li> <li><a href="https://info.devpost.com/legal/security">Security</a></li> <li><a href="https://info.devpost.com/legal/california-consumer-privacy-act">CA notice</a></li> <li><a href="https://info.devpost.com/legal/privacy-policy">Privacy policy</a></li> <li><a href="https://info.devpost.com/legal/terms-of-service">Terms of service</a> </ul> </div> </div> </nav> </div> </footer> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/platform-880b32e6224574219a6262682bf30232e6d3cf413fbad0b34ef1dc688bcd0e81.js"></script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/reimagine2-a3ac820ed12013fcadf17d797c6a74bdb299123048bb2d192e8aab1f460dc8dd.js"></script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/home/home_application-0dbf2c6bbe8e88a45ae9fcc471fb499fc7a3e7b01f2f9a530e92566522736d96.js"></script> <script type="text/javascript" charset="utf-8"> (function() { mixpanel.identify("87a655e8cf8e8ceafe08d6e4a2704a58910f595ec63299031beaa9719b5f112dd9d2e9bd7fa917bd9dd8145c3d85c05f4fee"); mixpanel.register({}); })(); </script> <script src="https://d2dmyh35ffsxbl.cloudfront.net/assets/slick-be61a9e761cc4aeb92940d6e5e9745b77acadbdaedada42659083117c28c4d00.js"></script> <script type="text/javascript"> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <script type="text/javascript"> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); var addthis_config = { data_ga_property: "UA-2233558-21", ui_508_compliant: true, ui_use_addressbook: true, ui_email_note: "I thought you might be interested in GeoViz - GeoViz: Augmented Reality Architectural Collaboration - Model, Design, Collaborate in Real-time. Elevate architecture in its true context!. It was built with geospatial, google, maps, photorealistic, 3d, and android.", ui_email_from: "" }; var addthis_share = { url_transforms: { shorten: { twitter: 'bitly' } }, shorteners: { bitly: {} }, email_template: "software_share_template", email_vars: { Title: "GeoViz", Subject: "Check out this project on Devpost", HomepageLink: "https://devpost.com/?utm_campaign=friends_share&utm_medium=email" }, passthrough : { twitter: { via: "Devpost", text: "Check out GeoViz" }, facebook: { app_id: 115745995110194, redirect_uri: "https://devpost.com/software/geoviz" } } }; var DEVPOST_ADDTHIS = { show: function() { $('[data-add-this-buttons]').each(function() {$(this).removeClass("hide")}); }, hide: function() { $('[data-add-this-buttons]').each(function() {$(this).addClass("hide")}); } } </script> <script type="text/javascript" charset="utf-8"> CP.env.addRoutes({ follows_url: "https://devpost.com/follows", search_softwares_url: "https://devpost.com/software/search", new_software_url: "https://devpost.com/software/new", search_hackathons_url: "https://devpost.com/api/hackathons", notifications_url: "https://devpost.com/notifications", api: { users_url: "https://api.devpost.com/users" } }) new Reimagine2(); $(function onDocumentReady() { CP.Home.SoftwareCommentButton.setup(); new CP.ChallengeStateInfoTzConverter( '#app-details', '[data-date-info-tag]', '[data-dates-text]', '' ).convert("Edit up to the submission deadline: "); new CP.GifPlayer CP.Carousel.setup() new CP.Home.EditableContribution('[data-contribution="editable-contribution"]') new CP.Home.LikesModal() CP.Historic.setup(".software-updates"); ventChannel().trigger("updates:list", "geoviz"); CP.LinkCollectionTracker.setup(".recognized-tag a", "#app-details-right").track( "Tag Gallery", { "Tag displayed on": "software details page"} ); new CP.Home.SoftwareLinks("[data-role=software-urls]").enhance(); CP.Home.DismissableMessage.setup("[data-alert]"); CP.ChallengeStateInfoTimeago.setup('#submissions, #draft-submissions'); CP.SendFormOnCommandEnter.setup($("#masqueradee")); (function(inputs) { if (typeof inputs.cp_autocomplete === "function") inputs.cp_autocomplete(); inputs.on('click', function(event) { return false; }); })($("#masqueradee")); var FollowButtonApp = new CP.FollowButtonApp({ user: { screen_name: "", follow_through_id: 0 }, urls: { register_url: "https://secure.devpost.com/users/register", user_follows_url: "https://devpost.com//follows", follow_through_url: "https://devpost.com/software_members/follows", follow_request_url: "https://devpost.com/follow_requests" }, follow_through_scope: "software_member" }); FollowButtonApp.start(); var appOptions = {}; CP.Mn.app.start(appOptions); }); </script> <!--[if lt IE 9 ]> <script type="text/javascript"> $(function onDocumentReady() { CP.IE.Notifications.setup(); }); </script> <![endif]--> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://devpost.com/", "potentialAction": { "@type": "SearchAction", "target": "https://devpost.com/software/search?query={query}", "query-input": "name=query" } } </script> </body></html>