Showing Multiple Floors in Path Animation

March 20, 2017

New feature we have added for wayfinding applications is accordion style floors when using path animation. This means, that all floors will be visible on the screens when showing the path through multiple floors.

In 3D Wayfinder you will see all floors as they exist in real building, so they are just simplified 3D models of the real floor-plans. When switching between floors, new floors will drop into scene on top of the previous floors or fly away, if going downward with the path. All floors are exactly covering previous ones, so basically whole 3D building models are sliced by floors.

Now it is possible to keep the floor plans apart from each other, so you can see all floors at the same time. This is useful mainly for wayfinding, so it is easy to remember the whole route. But we will definitely develop this “accordion” mode further, so it can be used also in other applications. For example in BIM applications, it is possible to highlight objects in all floors at the same time. Or visualize the whole factory with multiple floors or create multi-layer metro station animations.

Animation_floor_animation_in_3D_wayfinder_optimize

Currently the distance between floors is configured under settings. In future we will add features for separating the floors by dragging the floor-buttons apart. This makes the browsing of 3D buildings much more flexible.

To use this accordion style path animation, go to Settings in Administration panel. Then find Path->3D->Leave a offset between floors. For example use 50 as an offset, and then see how it looks.

« »

Request for a 3D Wayfinder Demo

October 27, 2016

Our sales team can help You to find the best wayfinding solution for You or Your customer. We can help You with creating 3D floorplans, designing a custom template and integrating wayfinding with other software. Now you can request for a 3D Wayfinder demo. 

We have made getting to know our software and our projects even easier for you than before. You can now find the request for a 3D Wayfinder demo button on our homepage.

Exploring 3D Wayfinder with your own resources is the most common way of getting to know our software. But it is even simpler if you ask for a demo and can have an interactive conversation with our people to clear out all the details of your floor plans creation needs and wayfinder requirements.

We will show you the basics you need to get started and will answer all of your questions about the software. During the demo we can also discuss any custom solutions and requests you might have.

Request for a 3D Wayfinder demo

« »

Separating Materials From Geometry

June 7, 2016

Until now all the materials in 3D Wayfinder have been replaced with each 3D model update. Now it is possible to keep the materials and their attributes’ values. This will save a lot of time, when creating a nice-looking 3D wayfinding application. See how to separating materials from geometry.

Separating_materials_from_geometry_in_3D_Wayfinder_software

We have added a small feature to our 3D model converter. That enables to replace the 3D models without overwriting the materials. This means, that all the changes that were made in 3D Wayfinder for the purpose of tuning materials, are not lost when replacing 3D models. See it in user manual.

3D modelling software packages are different and the way 3D models are exported also varies. In most cases you need to change the color of the materials (diffuse and ambient color). After the creation of the model to get good looking 3D floor plans. We are now supporting specular shader, transparency etc. that might not come directly from the converted models. All these material attributes can be changed in 3D Wayfinder, but these values were replaced each time the geometry was updated. Now there is the option to keep the materials and their values, when replacing the 3D model.

At the same time we have added ambient attributes to each material when uploading the 3D model for the first time or when replacing the model. So there is no need to enter the “ambient” attribute anymore, just change the color.

« »

New Reflection Feature in Our 3D Engine

December 18, 2015

FRAK WebGL engine has now built in Cubemaps and reflection shader. This gives 3D Wayfinder access to use reflections of surrounding area.

We have added built in cubemaps and cubemap reflection shader to FRAK WebGL engine. In addition reflection with cubemaps is efficient way to create reflective surfaces like glass or mirrors.
Also cubemap reflection is a rendering method. It means that reflective surfaces reflect the cubemap textures.

Cubemaps_and_reflection_shader_frak_reflections_webGL

It will be available for 3D Wayfinder in near future. This will be the effective way to create large glass walls or buildings. It make them more realistic. It might be used also for expensive shopping mall floors.

Next feature in FRAK will be specular map to mark efficiently reflective areas.

Cubemap demo can be found under FRAK repository.

« »

Towards Rule-Base Wayfinding

September 25, 2015

Future in wayfinding includes definitely possibility to create complex rules for path finding. Now there are also node restrictions in 3D Wayfinder to specify working days etc.

One of the last addition to 3D Wayfinder was node weights for calculating optimal paths. This made possible to guide visitors in some recommended way. Now there is also possible to restrict some nodes based on time and day.node_restrictions_wayfinding_paths_by_date_and_time

In many public buildings, there are rules for locking doors, elevators or gates. There can be different areas open during working hours than weekends or night times. This is common for shopping malls, train stations, university campuses etc. Even large office buildings are keeping some doors open during the weekends as there might be service providers like dentists, children playrooms etc. When providing wayfinding to your visitors, it is important to follow the same rules.

With 3D Wayfinder, it is possible now to create path restrictions according to work-day and time. To create this kind of restrictions, just open node attributes under editor.
Under Node attributes in 3D Wayfinder Editor, there can be entered JSON. In future we will provide also special UI for that.

Here is the example that will allow to pass the navigation node from 10AM to wayfinding_paths_restriction_node_attributes9PM:

{
“allowedTimes”: [
[
10,
21
]
]
}

Adding other blocks, you can also specify by days.

We are currently developing also other rule types, like security or accessibility. These rules help to create adaptable and user-friendly way-finding applications which are useful and finally elementary for large buildings.

« »

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.

« »