3D Interactive Floor Plan Demo

September 8, 2015

Check out our new 3D Wayfinder platform demo. This will give you short overview of what you can do with 3D Wayfinder and what are our API capabilities.

The demo has following topics:

  1. Moving 3D map with mouse cursor or touch screen.
  2. Clicking on the map and getting location name and description.
  3. Changing floors of the building.
  4. Showing path between 2 locations.

Demo is accessible from the 3D wayfinder home page and can be opened also from this link:

[xyz-ihs snippet=”3D-demo”]

Demo is based on following javascript code. You are welcome to use it in your projects, your HTML should contain canvas with ID “map”. For more info please see 3D Wayfinder embedding tutorial.

var wayfinder;
var map;
var mapContainer;
var poiInfo;
var tutorialArea;
var currentStep = 0;
var STEPCOUNT = 3;
var originals = {};
var floors = {};

function mapResize(){
	if(wayfinder){
		cont = mapContainer.find(".map-area");
		map.attr("width", cont.css("width"));
		map.attr("height", cont.css("height"));
		wayfinder.resize();
	}
}

function runDemo(){
	map = $('#map');
	poiInfo = mapContainer.find("#poiInfo");
	tutorialArea = mapContainer.find(".tutorial-box");
	wayfinder = new Wayfinder3D();
	wayfinder.options.assetsLocation = '//static.3dwayfinder.com/shared/';
	wayfinder.open("1a07bdc53edb3828f390bc9af7281585");
	setTimeout(mapResize, 150);

	wayfinder.cbOnProgress = function(percentage){
		$("#progression").css('width', percentage * 100+'%');
	};

	wayfinder.cbOnDataLoaded = function(){
	    mapContainer.find(".loading-screen").hide(100);
	};

	wayfinder.cbOnMapReady = function(){
		removeAllFunctionality();
		setText(0);
		stepTutorialButtons(0);
	};
}

function stepTutorialButtons(step) {
	var prev = tutorialArea.find(".tutorial-prev");
	var next = tutorialArea.find(".tutorial-next");

	if (prev.text() && step === 0)
		prev.text("").off("click").css("cursor", "auto");
	else if (!(prev.text()) && step !== 0)
		prev.text("<").click(previousStep).css("cursor", "pointer");

	if (next.text() && step === STEPCOUNT)
		next.text("").off("click").css("cursor", "auto");
	else if (!(next.text()) && step !== STEPCOUNT)
		next.text(">").click(nextStep).css("cursor", "pointer");
}

function removeAllFunctionality() {
	if (wayfinder) {
		if (wayfinder.poiController) {
			originals.onPOIClick = wayfinder.poiController.onPOIClick;
			wayfinder.poiController.onPOIClick = function(poi, position, event) {};
		}
		originals.cbOnPOIClick = wayfinder.cbOnPOIClick;
		wayfinder.cbOnPOIClick = function(poi) {};
	}
}

function setText(step) {
	var keep = tutorialArea.find(".tutorial-text").find(".keep");
	if (keep.length)
		keep = keep.detach();
	switch (step) {
		case 0:
			tutorialArea.find(".tutorial-text").text("Click and drag on the map to move or rotate.");
			break;

		case 1:
			tutorialArea.find(".tutorial-text").text("Click on a location for more info.");
			break;

		case 2:
			tutorialArea.find(".tutorial-text").text("Click on a button to show that floor.");
			break;

		case 3:
			tutorialArea.find(".tutorial-text").text("Click on the button to show the path between two random locations.");
			break;

		default:
			break;
	}
	if (keep.length)
		tutorialArea.find(".tutorial-text").append(keep);
	stepTutorialButtons(step);
}

function addFunctionality(step) {
	switch (step) {
		case 1:
			if (wayfinder && wayfinder.poiController) {
				wayfinder.poiController.onPOIClick = originals.onPOIClick;
				wayfinder.cbOnPOIClick = function(poi) {
					poiInfo.show(100);
					poiInfo.find(".title").text(poi.getName("en"));
					var poiDescription = poi.getDescription("en");
					if (poiDescription)
						poiInfo.find(".description").text(poi.getDescription("en"));
					else
						poiInfo.find(".description").text("");
				};
			}
			break;

		case 2:
			poiInfo.hide(100);
			poiInfo.find(".title").text("");
			poiInfo.find(".description").text("");

			if (wayfinder) {
				var showFloor = function() {
					var f = $(this).attr("data-floor");
					if (f in floors)
						wayfinder.showFloor(floors[f]);
				};
				var fs = wayfinder.building.getFloors();
				tutorialArea.find(".tutorial-text").html("<div class='keep'></div>");
				var floorsMenu = tutorialArea.find(".tutorial-text").find(".keep");
				for (var i in fs) {
					if (fs[i] && fs[i].showInMenu) {
						floors[i] = fs[i];
						var button = $("<button data-floor='"+i+"'>"+fs[i].getName("en")+"</button>").click(showFloor);
						floorsMenu.append(button);
					}
				}
			}
			break;

		case 3:
			if (wayfinder && wayfinder.logic) {
				var randomPath = function(times) {
					if (typeof times !== 'number')
						times = 1;
					if (times > 9)
						return;
					var poiList = wayfinder.pois;
					var poiIDs = [];
					for (var i in poiList) {
						poiIDs.push(i);
					}
					var rand1, rand2;
					while (!rand1 || !(poiList[rand1].getNode())) {
						rand1 = rand2 = poiIDs[Math.floor(Math.random() * poiIDs.length)];
					}
					while (rand2 == rand1 || !(poiList[rand2].getNode())) {
						rand2 = poiIDs[Math.floor(Math.random() * poiIDs.length)];
					}
					rand1 = poiList[rand1].getNode();
					rand2 = poiList[rand2].getNode();
					try {
						wayfinder.logic.showPath(rand1.id, rand2.id);
					}
					catch (e) {
						// Try again
						randomPath(times + 1);
					}
				};
				tutorialArea.find(".tutorial-text").html("<div class='keep'></div>");
				var area = tutorialArea.find(".tutorial-text").find(".keep");
				var pathButton = $("<button>Show random path</button>").click(randomPath);
				area.append(pathButton);
			}
			break;

		default:
			break;
	}
}

function removeFunctionality(step) {
	switch (step) {
		case 1:
			if (wayfinder && wayfinder.poiController) {
				wayfinder.poiController.clearHighlights();
				poiInfo.hide(100);
				poiInfo.find(".title").text("");
				poiInfo.find(".description").text("");
				wayfinder.poiController.onPOIClick = function(poi, position, event) {};
				wayfinder.cbOnPOIClick = function(poi) {};
			}
			break;

		case 2:
			tutorialArea.find(".tutorial-text").find(".keep").remove();
			break;

		case 3:
			addFunctionality(2);
			break;

		default:
			break;
	}
}

function previousStep() {
	if (currentStep === 0)
		return;
	removeFunctionality(currentStep);
	currentStep--;
	setText(currentStep);
}

function nextStep() {
	if (currentStep === STEPCOUNT)
		return;
	currentStep++;
	addFunctionality(currentStep);
	setText(currentStep);
}

$(function(){
	mapContainer = $("#demoMap");
	$(".home-video").click(function () {
		mapContainer.show(100);

		if(!wayfinder)
			runDemo();
		else
			wayfinder.engine.run();

		$(window).resize(mapResize);
	});
});

« »

Node Weights in Path Calculation

August 21, 2015

We have updated path finding functionality and path calculation. Now it is possible to change the weights of navigation nodes in 3D Wayfinder floor plan editor.

Path-finding application calculates automatically the shortest route from the starting node to the required location. In mobile applications, the Kiosk node can be your position inside the building. With 3D Wayfinder, the shortest route is calculated in a 3 dimensional room. It means the shortest path through all the floors.

Now it is possible to change the weights of the connection nodes. With this wayfinding application calculates optimal route, which doesn’t have to be the shortest. For example when you would like to guide your visitors to use the path inside the building instead of going around the building. Then you can set the weight for outdoor nodes higher. The weight is basically virtual length that will be added to the route, when passing the navigation node with a weight.

path_finding_functionality_in_3D_WayfinderTo use the weights you have to select the navigation node in 3D Wayfinder floor plan editor and change the node weight from the text box. By default all the weights are 0.

For example lets, say that waiting for the elevator takes usually 3 minutes. Lets assume, that visitors are moving with a speed of 3 km per hour, which is 50 meters per minute. So with waiting the elevator, visitor can pass 150 meters (3*50). If we would like to take account this in path calculation. Then we can add weight of 150 to the navigation node, that is marked as elevator.

Pathfinding functionality comes bundled in an add-on you can order from 3D Wayfinder Administration panel. It is also included in the Pro plan.

Read more about 3D Wayfinder’s path-finding capabilities.

« »

3D Wayfinder Joined the Open Design Alliance

June 19, 2015

We have joined the Open Design Alliance to develop CAD file support to 3D Wayfinder. With CAD support it will be easy to upload building drawing files and show them directly through web.

Open_Design_Alliance_logo_wayfinder

3D Technologies R&D (developer of 3D Wayfinder) is now a member of Open Design Alliance. The Open Design Alliance (ODA) is a nonprofit organization dedicated to the promotion of open industry-standard formats for CAD. ODA was established in 1998 and now has over 1300 members.

Most of the architectural modelling is done with Autodesk CAD software packages, where DWG files are native file formats. DWG is a proprietary and closed file format and it doesn’t have open specifications. ODA has deigned Teigha library which supports the use of C++, .NET, and ActiveX interfaces. Also it allows the exchange of data through .dwg, .dgn and .stl files.

We will search the possibilities to provide also DWG file reading in 3D Wayfinder. This will open up a whole new area for 3D Wayfinder. Architects can directly upload their building drawing to 3D Wayfinder and also real estate managers, building owners etc. For example DWG files that can be viewed through 3D Wayfinder. There will be no need for converting DWG-s to common 3D formats that 3D Wayfinder currently supports.

« »

3D vs 2D Wayfinding

May 18, 2015

What is the difference between 3D vs 2D wayfinding and what are the benefits of 3D floor plans?

We have tested 3D, semi-3D and 2D floor-plans with our small focus-group and below is the short summary.

3D_vs_2D_wayfinding_maps

To see the 3D floor-plans in action, please sign up to 3D Wayfinder for creating your own 3D floor-plans, or see our 3D modelling services and examples.

3D Wayfinder supports also 2D images for creating wayfinding application.

Semi-3D maps are rendered or designed floor plans, that are made to look like 3D. The map is rendered on an angle, so it is possible to see part of walls also.

We are using semi-3D maps for mobile devices, where WebGL is not supported yet.

3D vs 2D wayfinding floor plans

 3D floor plansSemi-3D floor plans2D floor plans
Overview of the building
  • 3D floor plans give a good overview of your location.
  • With 3D users see the map the way they see the building in real life.
  • It is possible to show the details, that people use for orientation inside building, for example escalators, pools, statues, tables, benches, trees etc.
  • Showing walls give a better understanding of where you are and it is easier to link the map with a real building.
  • It is easy to understand which floors have atriums and distinguish between things on different plains.
  • Semi 3D floor plans give also a good overview where you are.
  • Semi 3D can be shown only from the one angle, when looking from the other side, they can be are hard to understand.
  • Limited possibility to show the walls of the building.
  • Detailed 2D floor plans don’t give a clear overview, so it is better to use simple floor plans.
  • With simple maps the amount of details are limited.
  • It is hard for users to understand where they are and linking the map with real building is not that convenient.
  • With 2D it is not possible to show the walls of the building.
Usability of wayfinding application
  • 3D floor plans are easy to use. It is always possible to limit the zoom distances and even forbid rotation if needed.
  • Pathfinding is simple and 3D gives a good visual overview for navigating from one floor to another.
  • It is always possible to use camera view for path visualization.
  • Extra dimension enables to add more info.
  • Semi 3D floor plans are also easy to use, but it is not possible to rotate the maps.
  • Pathfinding is more convenient than 2D, as users can see some parts of the walls.
  • It is possible to add more info to the maps as 2D, but it is still not possible to add as many info/layers than 3D.
  • Rotating and moving is not that convenient, especially when looking on the vertical screen.
  • It is not convenient to guide visitors to other floors.
  • 2D floor plans should be kept simple, as there is limited space for layers and info.
  • Simple maps may not provide enough information and visitors may think, that the maps are not useful for them.
Map details and amount of information on the floor plans
  • With 3D there is one more dimension for presenting details and map related data.
  • Billboards on the map don’t disturb browsing.
  • It is possible to show details for better orientation.
  • It is possible to add more details than 2D maps, but the space for information is still limited.
  • Level of details should be kept as simple as possible, otherwise they disturb the understanding of the map.
  • Illustrated details cannot be presented in real size and it can be confusing.
Impression and imago of the building
  • 3D floor plans look nice and realistic.
  • Visitors have a sense of „controlling the building”, which makes them feel good
  • Users understand, that there has been more effort to make the wayfinding for them as good as possible.
  • Semi 3D looks prettier than plain 2D map.
  • Visitors may get disappointed when they try to turn the building, as they expect it to be real 3D.
  • With too simple 2D maps it is possible, that visitors may avoid using maps not to look foolish.
  • Detailed maps confuse visitors and they feel more lost than they were before stepping in front of the wayfinding application.
Displays and future technological possibilities
  • 3D wayfinding can work also with real 3D technologies like holograms, LED-cubes and 3D displays. Unfortunately these technologies are still in prototype phase.
  • With larger displays it is possible to add more details.
  • There is no reasonable point of showing more details with larger screen.
Advertising channel and Digital Signage integration
  • More advertisements can be shown on the maps, as the ads don’t hide the map.
  • Billboard ads on the maps look cooler and attractive.
  • Better than 2D but the advertisements still hide the map.
  • Advertisements disturb the using the wayfinding.
  • Less space for advertisements, as they hide the map behind them.

« »

Transparency in 3D Wayfinder

August 22, 2014

Recently we introduced improved transparency in 3D Wayfinder handling to FRAK engine. It can now be configured between three transparency rendering modes: sorted, blended and stochastic.

Wayfinder blended transparency in 3D Wayfinder

The sorted mode is what used to be the default earlier. There is mainly for backwards compatibility and fallback reasons. This can be used for decent transparency. But the geometry has to be modeled while keeping in mind that transparent meshes are compared by their centers.

Failure case for the old algorithm:

old_transparency_in_3D_Wayfinder

The first of the new modes is blended and it uses the weighted blended order-independent transparency algorithm. Also with a few modifications related to handling alpha-mapped surfaces. This mode is the new default for the engine. Since floating point textures seem to be supported by most browsers these days.

Weighted Blended Order-independent Transparency:

weighted_blended_transparency_in_3D_Wayfinder

The second new mode is stochastic. It is still a work in progress. But a viable alternative for certain situations. Stochastic transparency in 3D Wayfinder works by using random noise to give each transparent surface a proportional probability of getting through to the camera. This provides slightly more physically correct results. Currently is a bit too noisy.

Stochastic Transparency:

stochastic_transparency_in_3D_Wayfinder

« »

3D Technologies R&D has Launched 3D Floor Plan Application Development Kit

April 4, 2014

We are pleased to announce that 3D Technologies R&D has launched a service for software developers to visualize and interact with 3D floor plans. For example users can create Wayfinding, Smart House and Architecture visualization solutions. Using 3D Wayfinder floor plan application will save development time and gives users out of the box floor plan. The solution runs on touch-screen kiosks, mobile devices and websites, which makes it well scalable.

3D floor plan example

There are many areas where indoor wayfinding solution is useful and even unavoidable, such as shopping centres, transportation stations, sports facilities, hospitals, university campuses, etc. All of these facilities have different kinds of integration needs. This service enables developers to focus on these needs and not to waste time on additional development.

3D Wayfinder takes advantage of the possibilities offered by HTML5 and WebGL, that work on all modern web browsers. Taavi Juursalu, the company’s CTO says: „Our JavaScript API enables developers to intersect and send map specific events, so customizing the map is as easy as the Google Maps API. “

The platform is currently in beta version and therefore free of charge. The company’s Sales and Marketing Manager Rainer Saar adds: „3D Wayfinder for Developers is one of a kind tool in the World today that helps to widen Digital Signage and indoor wayfinding possibilities. Our service enables any developer to start creating applications without the need for specific skills in 3D field“.

3D Technologies R&D is also offering a full wayfinding solution with 3D floor plans and customer specific software development service. Today, 3DWayfinder helps to find the way in many shopping malls and transportation hubs across the World.

« »

3D Wayfinder Redesigned Website Launched

February 17, 2014

We are proud to announce the release of our newly redesigned website which goes live today 17.02.2014. It is located at the same address www.3dwayfinder.com. New website is more modern and user-friendly. Improved and re-designed landing page welcomes visitors with clean exquisite design. With featured content focused on providing our clients and partners the most accurate product information. You will immediately notice simple navigation options. Also easy access to information that is important. The website will be updated on regular basis with news, events, product updates and other new contents.

We hope You will like and enjoy the new website. Also we would very flattered if You will stop by at the new site.

If You have any suggestions on how we could make the website even better, don’t hesitate to share it with us by clicking here.

Wayfinder

3D Wayfinder MobileNew website includes many improvements and new features. Some of the most important ones are listed below:

  • Improved navigation.
  • Precise overview of kiosk, mobile and web application.
  • Overview of different maps (3D, semi 3D and 2D).
  • Technical information.
  • Categorized resellers and their contact details.
  • New design is fully responsive. Which means You can now enjoy all of the content on mobile phones and tablets.

« »

Merry Christmas and a Happy New Year

December 19, 2013

joulD

The whole team of 3D Technologies R&D wishes You a merry christmas and a happy new year.

We will put additional effort into developing the software. All for better service and satisfaction for a user.

Just last year we could read that WebGL and HTML5 are not very well supported on mobile devices and have a long way to go. First tests showed that with a low polygon cont it was still lagging and mobile devices crashed often. Now things have changed and there has been a great leap forward – WebGL has started to mature and stabilize.

The mobile Internet speed is increasing every year and application downloading time is shortening. Telecommunications company EE announced recently that it has switched on the world’s fastest 4G network in East London which is capable of reaching speeds of up to 300Mbps. The fast mobile internet connection allows to download and use applications or online services faster and more conveniently.

Devices are becoming more and more powerful – each year more improved and advanced mobile processors roll out. For example MediaTek recently announced the MT6592, a mobile processor that includes eight cores with each capable of running at speeds up to 2GHz. It is the world’s first heterogeneous computing System on a Chip with scalable eight-core processing for superior multi-tasking. Fully functional WebGL on mobile devices is already here and we think that in few years or even less it will reach wider audiences. A prerequisite for this is of course technology’s lower prices and the increase of mobile internet speed.Here is the screenshot of the very first test of 3D Wayfinder WebGL on mobile device (Nexus 5):

If you want to be sure that your mobile device browser support WebGL then just click here. You can also check this summary table where is detailed data almost every desktop and mobile browser WebGL support.

« »