Skip to content

Releases: HTTP3D/WalkTheWeb

WalkTheWeb v3.4.1

30 Nov 20:01
9064d39
Compare
Choose a tag to compare

Release Date: 11/30/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

This release focuses on preparation work for 3D Stores and security by adding a WalkTheWeb token Key and Secret that can be assigned to access certain aspects of WalkTheWeb.

Updated in this release:

Added description Fields to tables - The Communities, Buildings, and Things tables each added a field for description. The fields did not make it into the last update. This updates the table definitions to force the update. You can manually add the fields: communitydescription (to table communities as varchar(255) default ''), buildingdescription (to table buildings as varchar(255) default '', and thingdescription (to table things as varchar(255) default '').

Send Test Email - The send test email on the wtw-swiftmailer plugin was set to convert the email string to an array, but it was already being converted in the handler. Removed the array function from the $zsendto variable and now the test email sends properly.

Config Variables and Field Names - The server settings in the config file are set from text input fields that did not match the names. Corrected the names, set passwords to use base64 encoding, renamed wtw_defaultfromemail to wtw_adminemail, and added additional support for the following fields: adminname, ftphost, ftpuser, ftppassword, ftpbase, umask (folder permissions), and chmod (file permissions).

Base64 Encode Password Constants - In order to base64 encode the database password in the config file, we set it up to automatically encode it if it is not. Then on every database function that calls the connection string (minimum occurrences since we use query functions), we added base64_decode function to the wtw_dbpassword constant. New instances of WalkTheWeb will automatically encode the database password on install.

Config File Permissions - Using a defined constant in the config, we set up variables wtw_chmod and wtw_umask to easily allow the admin to configure the file permissions that are automatically added to uploaded files. wtw_chmod defaults to 755 and wtw_umask defaults to 0027.

Server Config Admin Page - Added a Server Settings Config page that allows the admin to easily edit the config file settings. There are a couple settings that cannot be changed on this form such as wtw_serverinstanceid, wtw_tableprefix, and wtw_contenturl. We also added a number of settings for wtw_adminname, wtw_chmod, wtw_umask, and for the upcoming FTP support, wtw_ftpuser, wtw_ftppassword, and wtw_ftpbase. Note that the passwords are stored in the config file using base64 encoding and this new form will set that automatically for you.

Update WalkTheWeb Process File Permissions - When the WalkTheWeb update process is called, it downloads the update then unzips it and replaces some of the files for the site. The unzip process was having a permissions issue so we added a permissions setting call before the unzip command to the newly downloaded file. This will correct the update unzip permissions.

New Function in Uploads Class - We created a new function in the uploads class called getFilefromURL. We will be focusing all of the file transfers through this function so that we can append it with various methods as needed, all in one place. Currently it uses fopen and curl commands. FTP support will be added in the near future..

Added Cookies support to Connect and Handler Functions - To support cookies in php, the session_set_cookie_params have to be set before the session_start function. The main pages already have this in place, but the connect and handler class pages did not. We added the necessary code so now any cookies can be read from within the php code on these types of pages.

Corrected Animation Restarts in Extreme Zone - When an animation is part of a mold (mesh) and is assigned to load in the Extreme Load Zone, If the avatar walked out of the extreme zone and back in, the animation would not restart. Basically, the animation from the first loading was not completely disposing, causing it to think it was already loaded and running. The order needed to be modified to remove the animation completely on dispose of the mold, so that it could fully reload on next attempt to enter the extreme load zone (Previously, it was only working in other load zones). We moved the disposeMoldEvent function call to sooner in the disposeClean function and removed the constraint so that it happens on all child items of a disposed object and now it works correctly.

Corrected Sound cut-off on Unload - The Sound was not stopping when it was attached to a mold in the extreme load zone. Then when you would reenter it, the sound would over-lap the last sound and play again. The solution was similar to the Animation restarting issue, we moved the disposeSoundAndLights function to happen sooner in the disposeClean function. This corrected the sound issue.

Added Fields to Communities Table - We added additional fields for setting the First 3D Building into a 3D Community. The First Building location is used by the automated processes to add a 3D Building (example 3D Store) to a 3D Community with minimal input. We already had buildingpositionx, buildingpositiony, buildingpositionz, and buildingrotationz.We now added buildingscalingx, buildingscalingy, buildingscalingz, buildingrotationx, and buildingrotationy to match the available settings for a typical connecting grid.

Set First 3D Building Location on 3D Community - In order to make new 3D Community Scenes work well in automated processes, like quick start 3D Shopping Stores, we needed to have a method to select the location of the first 3D Building that will be added to the 3D Community. These settings involve position, scaling, and rotation and become the connecting grid settings for that first 3D Building in the 3D Community. The values are stored in the communities table. When setting the value, there is a place marker that can be moved to visualize the location. It represents about a 120x120 unit foundation, so make sure to leave room on all sides for larger buildings as desired. The admin menu item to set the First 3D Building location is named Set First 3D Building and has been added to the Options and Settings menu of 3D Communities.

Added First Building Location to Copy and Share - The new fields for the First 3D Building in the communities table have been added to the processes for Share 3D Communities, Download Shared 3D Communities, and Copy 3D Communities. In addition, the fields have been added to all relevant connect, handler, and function files.

Added Description to Share Process - In addition to the share description, communities, buildings, and things tables added a description field that is used by the meta tags when browsing the 3D Website. For reference, we prevously added the communitydescription to the communities table, buildingdescription to the buildings table, and thingdescription to the things table. Now we included these description fields when sharing or getting a shared 3D Web from downloads.

Added Fields to 3D Shopping Plugin Tables - We have added 2 new fields to the stores table for 3D Shopping plugin: woocommercekeynew and woocommercesecretnew. They will assist with a process to push an update to the WooCommerce key and secret from the soon to be released updated WordPress - WalkTheWeb 3D Shopping plugin.

Latest WalkTheWeb Video on Dashboard! - The Latest WalkTheWeb video is now available on the WalkTheWeb 3D Internet CMS - Admin Dashboard page! Keep informed and get the latest features as they happen. These videos include training videos, demos, updates, coding sessions, and more.

Repurposed and Renamed Table UserAPIKeys - The table userapikeys was no longer in use so it has been repurposed for App level API Keys tracking. The table was renamed to apikeys and fields removed the term user, and fields were added for appid allowing 32 characters, appname 255 characters, approved flag as int, approveddate, and approveduserid. This will be used to allow outside apps with proper permissions to perform select secure tasks within the WalkTheWeb instance.

Added decode64 PHP Function - There are a number of times where we expect base64_encoded string, but if it is not formatted correctly, it can cause an error that stops the code from completing. We created a function in the wtwdb class and extended it to the wtwconnect and wtwhandlers classes so that you can easily pass in the text and get either the base64_decode text or blank if it is not base64. This way we can still gracefully process the remaining code and just check for empty text.

Replaced base64_decode with new decode64 Function - The base64_decode PHP function was generally used after data transfers in JSON and form posts which are generally in the Connect, Handlers, and Functions. We have now updated them to use the new decode64 function; example $decodedtext = $wtwconnect->decide64(encoded64text); This will now return a blank value instead of causing a halting error in code.

New API Access Settings - To achieve a high level of connectivity, there are times when we need an outside application to access or set data within a WalkTheWeb instance. In Admin, under the Settings menu, we have added an API Keys Access menu option. This takes you to a page that can create, edit, approve, deny, reassign, and delete API Keys.

New API Handler, Class, and Connect Files - All of the functions for the new Admin API Keys Access functionality are grouped into a new class called wtwapi. This class can be used from other classes, connect files, and handlers. The functions include getAPIKeys, getAPIKey, approveAPIKey, saveAPIKey, and deleteAPIKey. Each of these functions require Admin ...

Read more

WalkTheWeb v3.4.0

30 Oct 20:19
eda6c73
Compare
Choose a tag to compare

Release Date: 10/30/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

This release focuses on two big improvements; Multiplayer for Everyone and Email Services.

Multiplayer: We are releasing the 3D Internet Plugin! This plugin provides Global WalkTheWeb Logins and Avatars to your WalkTheWeb instances for free. It also provides a connection to the main WalkTheWeb Multiplayer and Chat as an optional service for your WalkTheWeb instances!

Email Services: We implemented Email services using SwiftMailer. (see https://github.com/swiftmailer/swiftmailer). This enables us to generate emails from your WalkTheWeb instances. This allowed us to add Password Recovery and Email Confirmation processes to the Logins.

Updated in this release:

UserToken Authentication for Downloads - The downloads process to get 3D Communities, 3D Buildings, and 3D Things uses the logged on session userid to create the new copy. When triggering a push based download like from WordPress WalkTheWeb Plugin, we needed a different way to authenticate the download, therefore used the WalkTheWeb Global Login - logged in usertoken. Each global user has a unique usertoken per website they connect, which keeps this process secure.

DownloadWeb Items Userid Reference - Some of the user id values inserted into the tables were using $handlers->userid while others used the assigned local variable $zuserid. With the addition of usertoken access, we needed to use the local variable for consistency.

Increased Default Walking Speed - Increased the default walking speed and walking animation speed to 2. It has a range of .1 to 2.9 in increments of .1 for both walking speed and walking animation. The default was 1, which makes this a third faster.

Added Missing Logo Image - Added the missing image that shows in the meta preview for the website if a Preview Image is not found. The preview image can be set in the 3D Community -> Options and Settings -> 3D Community Snapshot.

Fixed Meta Tags - The meta tags for the website set the Title, Description, Image, and URL for the website. A faulty SQL statement was stopping it from pulling the data from the tables. It has been corrected by fixing the statement and adding a communitydescription, buildingdescription, and thingdescription fields to the communities, buildings, and things tables respectively. The Description is also added to the Information pages under the Name.

SameSite Cookie Header - The SameSite Header is designed to limit or allow cookies to be passed to other 3rd party sites opened with the page. We added headers to all of the pertinent pages to limit or allow as necessary. This includes our main pages, handlers, and connect pages.

Colors for Default Avatars - The default avatars were not loading the colors with the new instances. Modified the useravatars.php connect page to include the colors based off the default avatarcolors table.

Email Server Functionality - We implemented the open source SwiftMail server as an Email Sending Service. This allows WalkTheWeb to connect to an SMTP service for sending emails. It includes Host, Port, Encryption, authentication with username and password, and settings for the from Email and Name. There is also a test email feature to make sure the settings are working.

Server Instance Variable - The serverinstanceid was sometimes referred to as serverinstance. For consistency and to match the database usage of it, it has now been set to serverinstanceid in all occurrences.

On Avatar Select return value - For use during plugins, the pluginsOnMyAvatarSelect function now returns a true or false as zloading to determine if the plugin is responsible for loading an avatar opposed to letting the default process load the avatar. This is a key in using Global Avatars.

Global User Avatar ID cleanup - The Global User Avatar Id was referenced by serveravatarid and globalavatarid in various parts of the code. We replaced the references with globaluseravatarid because it is the global WalkTheWeb version of useravatarid. This also allows us to reassign globalavatarid as a reference to a global WalkTheWeb avatars definition version of avatarid.

Global vs Server naming - There were a number of instances on the 3dnet.walktheweb.com site that set or sent fields referred to with names using server. Since each WalkTheWeb instance uses a serverinstanceid, we changed the hub key field references to names using the preface global.

Email Letter Case in Users Class - The users class was comparing emails and did not account for upper, lower, or mixed case letters. We changed the SQL to compare using the term like to account for any servers that are case sensitive.

Admin Mouse Overs - When user does not have certain permissions, they can still view a minimum admin menu. There were some errors caused by items not showing due to permissions. These items now check the availability before trying to set the values.

emailconfirm Field on users Table - Changed the emailconfirm field length to 255 on the users table to support larger hash values and to match the recoverpassword field length.

Save Settings without Callback - When saving settings using the JavaScript Function in wtw_common, it required a callback function. Now it allows a null or undefined callback function to just save the settings without the need of a response.

Added Enable User Email Validation - We added a global variable WTW.enableEmailValidation with a 0 or 1 value to determine if the system will try to send and require email validation on login and create user accounts.

Send Email Function - We added a sendMail functions in JavaScript and PHP that allows you to set the sendto, cc, and bcc arrays of email addresses, subject, HTML message, and plain text message to generate a system sent email alert.

Created WalkTheWeb Update for Bot - Created a new admin page that will post the WalkTheWeb updates to the database and Discord Bot! (Not part of the distribution, but interacts with the distribution)

Global User Id Data Type - Previously the data type for the Global User ID was a big int. This has been updated to be a varchar(16). The references in the code were updated to default to blank instead of -1 and any sql references were updated to use string quotes around the values.

Global User Avatar ID was going Blank - After the user logs in using a global account and selects an avatar, the global user avatar id gets set. Moments later the input value (wtw_tglobaluseravatarid) kept going blank. We updated the updateAvatar JavaScript function to set the input instead of clearing it. Problem solved.

Multiplayer not Loading properly or Moving - The 3D Internet plugin was experiencing an issue since we implemented the server check. First of all, the server check required the server ip to be passed to several processes using move.js functions, and second, the movedata was incorrectly reading the server id for approval. All is corrected and working again!

Shopping Cart Buttons Updated - Some of the shopping cart buttons for the wtw-shopping plugin were not properly textured, making it difficult to see the lettering. We made the casing blue, button white, and text black. This gives a high contrast in the lettering and background. This update includes the Add to Cart, Read More, Buy Now, View Cart, and Check Out buttons.

Archive WalkTheWeb Update Details - You can now see the details of every WalkTheWeb update release and prerelease notes for the upcoming update on the Admin Menu - Dashboard - Updates page in the Admin of your WalkTheWeb 3D Website. It uses an accordion display, just click on the update to expand or collapse.

Added Admin Styles for Archive WalkTheWeb Update Details - The new Archive section of the full page section called Archive WalkTheWeb Update Details required a couple new div class styles; wtw-versionheader and wtw-versionsummary. The header has a hover and both have margins and padding appropriate for the Full Page sections in case you need them on your plugins.

3D Internet Plugin - Multiplayer and Chat - We are releasing the 3D Internet Plugin! This plugin provides Global WalkTheWeb Logins and Avatars to your WalkTheWeb instances for free. It also provides a connection to the main WalkTheWeb Multiplayer and Chat as an optional service for your WalkTheWeb instances! With a simple activation, you can now use our servers as your multiplayer and Chat servers for your WalkTheWeb Instances!!! Service Plans starting at only $120 per year (Just $10 USD per month).

Linked to Discord - This is not on the distributed end, but wanted to announce that we have added many automations and links into Discord! WalkTheWeb 3D Internet will now post to Discord updates of New Servers Online, New Users (basic region info only), Shared 3D Webs with Images (3D Communities, 3D Buildings, and 3D Things), WalkTheWeb Broadcast Messages, and WalkTheWeb Updates. This will definitely improve the communication as we deliver new functionality to the 3D Internet! If you have not joined the WalkTheWeb Discord, here is the link: https://discord.com/invite/MW7MG2t

WalkTheWeb v3.3.5

30 Sep 22:05
c3f68c5
Compare
Choose a tag to compare

Release Date: 9/30/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

This release focuses on getting ready for 2 big upgrades coming soon:
WalkTheWeb 3D Shopping WordPress Plugin - Create a 3D Shopping Website in less than 5 minutes!
WalkTheWeb 3D Internet - Get connected and have multiplayer services available to your WalkTheWeb instance.

Updated in this release:

Style addition in Install - The install process shares the download JavaScript with the Media Library downloads. In the results were 2 styles not included in the install css. These have now been added to improve the download button appearance.

Return Visit Avatar Loading - When you select an avatar for a 3D Website, it saves the useravatarid as a cookie. When you reload the page or return to it, the cookie is read and if it exists, loads the same avatar again. The global avatars had the right conditions, but the local avatars needed an update on the condition to make it work.

Last Animation Key Undefined Skeleton - Part of loading the animations to an avatar checks the last animation key so that it can append the next animation range to the avatar. When the skeleton does not have a previous animation loaded, this range or the skeleton may not be loaded yet and was causing an undefined error. Added the condition to check the skeleton existence before getting the key.

Load Avatar Animations requires Skeleton - When loading an avatar animation, if the animation to copy is not correct, it was breaking the process to load the remainder of the animations. Added code to check the skeleton before adding the animation.

Added Mouse Cursor to Buttons - The buttons after the download has completed were not using the cursor pointer on mouse over. Corrected the style.

On Screen Display of Messages - Added a way to receive on screen broadcast messages from WalkTheWeb. This is the first step towards server level on screen message sending to all current users.

Added Global Variable for Website URL - While working in Admin Mode, admin.php page, the web alias is not used by the site while in the browsing window. The added wtw_websiteurl can be used in JavaScript and $wtw->websiteurl can be used on the main website php pages.

Eliminated the use of Username - Many iterations ago, the primary key of userid was implemented for users mainly for the multiplayer system. Prior to that there was a username primary key. Now with default display name on the user account and each avatar having a separate display name, there is no longer a need for a username. This extends to all site code. Some instances when applicable, have been changed to use displayname while others were completely eliminated. The login process replaced username with email.

Removed check Key for username and usernameoremail - In the checkKey function on the wtw_inputs.js, the username and usernameoremail valid type were removed since we no longer use username. The entries were updated to use email for the login.

Changed check Key for displayoremail - In the checkKey function on the wtw_inputs.js, the displayoremail valid type was changed to idoremail since we no longer use username. The entries were updated to use email or userid for the permissions granting.

Changed check Key for displayname - In the checkKey function on the wtw_inputs.js, the displayname valid type was updated to include the use of capital letters, lowercase, numbers, and very few symbols (hyphen, underscore, period, space, comma, and single quote).

Changed getUsernameByEmail to getUserIdByEmail - In the wtwusers PHP Class, the function to verify if an email exists was returning the username and has been updated to return the userid, also renaming the function to match.

isUserNameAvailable Function Removed - The isUserNameAvailable function in the wtwusers PHP class has been removed since the username is no longer in use and does not need to be checked for uniqueness.

Removed addMustHave Function - During a new install many iterations ago, the process was downloading a number of Must Have 3D Things to get you started. It has been depreciated for some time, including the use of a non existent stored procedure. The Function and code that calls it has now been removed.

Removed username Database Fields - With the replacement of email over username for login, we have now removed username field from the users and userauthorizations tables. After the code update completes, you can remove these fields manually.

Added Post Form Functions to Connect Class - The getPost function was moved to the wtwdb class then extended to work from the handlers and connect classes. The advantage is that the connect class can now support form POST data in addition to GET querystring based requests.

Added getFiles Function to Connect Class - The getFiles function adds the possibility to upload a file during a POST. The getFiles function was moved to the wtwdb class then extended to work from the handlers and connect classes.

Added new Host User Role - The Host user role will be used for Admin Mode permissions but limited to one or more Hosted 3D Websites. It will resemble an Admin for given 3D Communities, 3D Buildings, and 3D Things without being a full Admin on the server.

Renamed accesstoken to usertoken - Renamed accesstoken to usertoken in the users table and code. This usertoken is designed to authenticate from the WalkTheWeb global login. It has no connection to the local login.

Web Name Check Added - The webnamecheck.php page has been added to the connect folder. This will allow WordPress sites to confirm the availability of a website path for a community and building name.

WordPress Connect Page Added - In the connect folder, the wordpress.php webpage has been added. This is part of the WalkTheWeb WordPress Plugin features to be able to create a 3D Shopping Website in less than 5 minutes from a WooCommerce Online Store. It authenticates against the WalkTheWeb Global Login and requires local Admin or Host role access to interact with your WalkTheWeb instance.

New Tools Class - We created a new class called wwwtools and handler to extend tools that do not fall under any of the other classes. Currently, it holds some of the Email Server Settings. This will be expanded as needed.

WalkTheWeb v3.3.4

29 Aug 22:52
471749a
Compare
Choose a tag to compare

Release Date: 8/29/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

Updated in this release:

This update is packed with 70 enhancements and bug fixes. The most significant updates is the release of the new 3D WalkTheWeb Downloads repository! It now supports 3D Models, 4k+ graphics and top quality samples.

In addition the New Install process has been streamlined to use the new repository and avatar selection functions.

Avatars are cleaner and the selection process has been refined.

Fixed Copy 3D Building process - The 3D Building copy process passed variable $zcopybuildingid while the process used $zfrombuildingid. Corrected to match $zfrombuildingid. Also added additional fields and tables that have been added since last review.

Fixed Copy 3D Community process - The Copy 3D Community process has been updated for the latest method of code with 3D Models, and added fields and tables that were under development.

isTextBox function causing error - The isTextBox function was causing an error any time a right click was not on an input tag due to the toLowerCase on a null object. Corrected the code to check for null first.

Removed Displayname from User Authorizations - Removed the displayname field from the userauthorizations table. It was depreciated and no longer in use.

Fixed Right Click on 3D Thing with 3D Models - When you right click in Admin mode on a 3D Model that is part of a 3D Thing, it was sending you to the wrong form (mold edit instead of connecting grid form) even though the 3D Model is not part of the item being edited. Corrected the process to select 3D Things and 3D Buildings in 3D Communities by editing their connecting grid.

Fixed Uploads foreign key assignments for Images - Fixed Uploads foreign key assignments for Images. The previous method used the database to confirm the identity key. Now it creates all of the required keys and adds them to each record on insert avoiding update errors.

Eliminated return data from updateFileInDb in wtw_classuploads - Eliminated return data from updateFileInDb in wtw_classuploads by populating keys before the function call.

Cleaned up local variables in wtw_classuploads - The wtw_classuploads had a number of references to local variables that were not renamed using the $z prefix. Overall, cleaned up code.

Added hex color fields to tables - Added hex color fields for diffusecolor, specularcolor, emissivecolor, and ambientcolor as varchar(7) to the tables: communitymolds, buildingmolds, thingmolds, and useravatarcolors. This will assist in phasing out the storing of red, green, blue number colors individually.

Added hexToRGB and rgbToHex functions - Added hexToRGB and rgbToHex functions to the core/scripts/prime/wtw_utilities.js. This will make it easier to convert back and forth between rgb and hex.

Added pastavataranimationid field to avataranimations table - As part of the shared item expansion we added pastavataranimationid field to avataranimations table.

Replaced MoldGroup variable for WebType - WebType and MoldGroup variables were interchangable for meaning. Therefore, we eliminated the use of moldgroup by replacing the instances with WebType. This includes the field name reference in the Scripts table.

Variable Renaming (also effects Plugins) - We are continuing our efforts to be consistent on variable naming. Completed a lot more local variables within JavaScript functions to start with the letter z. This makes it easier to identify local vs global variables at a glance. The plugin hooks also had the variables passed to them all renamed to start with z.

Added Hex color Updates to Table Values - First time you go to admin mode, the hex colors will be populated based on the values of rgb colors in the tables. This applies to communitymolds, buildingmolds, thingmolds, and useravatarcolors. To perform this task, the PHP function getHexFromRGB was added to the wtwdb_class and updateColorsHex was added to the wtwtables class.

Eliminated the use of RGB Color Fields - The following fields have been eliminated from use and therefore deleted from the code: wtw_tspecularcolorr, wtw_tspecularcolorg, wtw_tspecularcolorb, wtw_tdiffusecolorr, wtw_tdiffusecolorg, wtw_tdiffusecolorb, wtw_temissivecolorr, wtw_temissivecolorg, wtw_temissivecolorb. The new version uses hex code for wtw_tmolddiffusecolor, wtw_tmoldemissivecolor, wtw_tmoldspecularcolor, wtw_tmoldambientcolor.

Reset new Molds Y value - Originally the Y value (up) was set based on the avatar or camera location with an offset. Now that the avatars position is redesigned, we still use avatar position or camera, but needed to update the offset for better placement.

New Color Selector Wheel Process - When editing a mold, if the covering (texture selection) sets a color, you can now set diffuse, emissive, specular, and ambient colors for a mold with a color wheel selector and/or html color codes. The color wheel is larger and only a single wheel shown at a time. Just select the textbox and the color wheel will automatically open. It closes when focus changes to another field or save, delete, or cancel the mold changes.

Deleted table fields for RGB Colors for Molds (optional) - With the new change in HTML color codes instead of RGB on tables communitymolds, buildingmolds, and thingmolds, once the update has complete if you check that the colors are working (populated in the edit mold form - right click a basic mold in the scene), then you can manually delete the table fields for (notice they end in RGB - not to delete the new fields without the R, G,or B reference) specularcolorr, specularcolorg, specularcolorb, diffusecolorr, diffusecolorg, diffusecolorb, emissivecolorr, emissivecolorg, and emissivecolorb (only in the 3 molds tables).

ObjectFolder and ObjectFile removed from Mold tables - The fileds objectfolder and objectfile have been retired from the tables: buildingmolds, communitymolds, and thingmolds. Optionally, the fields can be manually deleted from the molds tables. It has been depreciated to the values in the related objectuploads table. Note that this does not effect other tables like avatar and animation related folders and files.

Fixed Extended Ground Texture Change and Sun Spot - The extended ground was not updating when changed. Fixed the preview thumbnail when selected and the save JavaScript was trying to use the getJSON function instead of the correct postJSON function. In addition, adjusted the specular color of extended ground to tone down the sun spot.

Connecting Grid related MoldName Update - When the Mold uses an alternate Load Zone from the parent, the mold name was wrongly named using the parent connecting grid. Corrected the issue so that the mold name properly represents the connecting grid it comes from instead of the top parent.

Corrected Saving Names, AltTags, and Descriptions - The Handlers were not consistent with how data was passed from base64 or html encoded, causing some entries to be dropped. Now JavaScript is passing those values using base64 and PHP decodes the base 64 on read in the handler.

Adjusted Admin Menu Scroll Height - Adjusted the Admin Menu Scroll height so that it no longer hides part of the bottom buttons under the Quick Editor Settings.

Created getNewKey PHP function - The getNewKey PHP function has been added to the wtwdb class. The function lets you pass the tablename (without prefix), key field name, and possible first key value to test and the function will use the default, then random string values until it returns a unique value. This function has been extended to the handlers and connect classes.

Added pastuserid to Users table - Used by the shared downloads, the pastuserid allows us to track items from a particular user that have been downloaded, since the userid is made to be unique and often gets a new random value. This field has been added to the tables class in php.

Created getIDByPastID PHP function - Mostly used during import (shared downloads) process, if the key id of a table was changed due to duplicates, the old value is stored in the past fieldname field. This function lets you retrieve the new value based on the past field. Dates are used to select the latest where duplicates are found. Duplicates exist most often when the same 3D Web is downloaded multiple times. This function was added to the wtwdb class and has been extended to the handlers and connect classes.

Added pastuploadobjectid and pastobjectanimationid to tables - Used by the shared downloads, the pastuploadobjectid and pastobjectanimationid allows us to track items from a particular table that have been downloaded, since the id are made to be unique and often gets a new random value. This fields have been added to the tables class in php (pastuploadobjectid to uploadobjects table and pastobjectanimationid to uploadobjectanimations table).

Users table key Field Change - In the users table, the primary key was set to the username, yet the values used as the foreign key was userid. For consistency and proper setup, the primary key is now userid and username is set to not null. wtwtables class has been updated.

Created a New 3D Webs Repository - Created a new 3D Webs (3D Communities, 3D Buildings, and 3D Things) repository with all of the latest functionality. Some of the new features are the inclusion of 3D Models, avatar animations, and scripts. This new functionality can be found in the new WalkTheWeb install or the WalkTheWeb downloads in the media library.

Update user was dropping Email - When admin updates a user, the save process had a mislabeled email (needed to be useremail) when passing the value. Made the correction and is now saving the email address.

Web Alias Editing fi...

Read more

WalkTheWeb v3.3.3

31 Jul 20:35
164b886
Compare
Choose a tag to compare

Release Date: 7/31/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

Updated in this release:

The most notable upgrades include: We are building a new repository for Shared 3D Community Scenes, 3D Buildings, and 3D Things (3D Webs) to make it easy to search and download 3D Models to add to your 3D Scenes! This release allows users to Share 3D Webs and add to the inventory of available downloads. In a future release (once the repository has enough items to proceed) we will cut the downloads over to the new repository. Note that the new repository fully supports 3D Models!

Another great change for developers is we broke down the largest 2 script files into logical smaller files with a lot more comments. This should help follow along and make things easier to find.

AdminView global variable - The Start up sequence sets the Admin View global variable (WTW.adminView = 1;) if the admin mode page is loaded. We moved the test to set that variable sooner in the startup sequence.

Renamed Admin Functions - Some admin functions have been renamed such as: setAdminTarget is now setMenuBarSelectText.

Divided and eliminated wtw_admineditor.js file - The wtw_admineditor.js file was over 12,000 lines of code. This made it hard to find related items. We broke it into 9 different files that now replace the admin editor single file. The new files are all in the /core/scripts/admin folder: wtw_adminactionzones.js, wtw_adminconnectinggrids.js, wtw_admincommunities.js, wtw_adminbuildings.js, wtw_adminthings.js. wtw_adminforms.js, wtw_adminmenus.js, wtw_adminmolds.js, and wtw_adminusers.js.

Upload File Permissions - When you upload a file, the permissions were not getting set. So it could not read the file after upload to resize images or move the files. Added chmod permissions after file put statements. Folder permissions were also changed to 0755.

Eliminated Wall and Floor Collision settings - The original coded Wall and Floor Collision settings were still remaining in some of the code and in the database. The collisions were moved months ago to the molds and uploaded objects directly for more control. Previous references have been removed.

SameSite cookie warning for cross scripting - After a Google Chrome update, I started seeing this cookie warning: Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute. The cookies generated by WalkTheWeb are used to store user preferences like walk speed and camera views. The cookie declaration has been updated to use samesite as strict so the cookies are not transferrable to cross sites (other domains).

Share 3D Communities, 3D Buildings, and 3D Things - For the first time since WalkTheWeb went open source, we are reinstating the ability to share 3D Communities, 3D Buildings, and 3D Things. This was previously disabled due to the additions of Babylon 3D Object Models and new graphic settings. The entire process has been reworked for security and all new complexities of 3D Websites. This is the first stage, where now we can build the library of high quality 3D items to download to your 3D Websites. We have not implemented the process to search and download those items yet (until we have enough to replace the former repository).

Fixed Copy 3D Thing process - The 3D Thing copy process passed variable $zcopythingid while the pocess used $zfomethingid. Corrected to match $zfromthingid. Also added additional fields and tables that have been added since last review.

Added pastactionzoneanimationid to ActionzoneAnimations table - Added pastactionzoneanimationid to ActionzoneAnimations table to assist with tracking and implementing copies of records. The "past" fields are the previous key field value. This is a cross reference for updating the foreign keys.

Added pastscriptid to Scripts table - Added pastscriptid to Scripts table to assist with tracking and implementing copies of records. The "past" fields are the previous key field value. This is a cross reference for updating the foreign keys.

getid16() MySQL function retired - Previous versions had a MySQL function called getid16() for creating random strings for id values. This was retired, but there were 2 references still found in the code. These have been replaced with the PHP getRandomString(16,1) function.

WalkTheWeb v3.3.2

26 Jun 22:40
1bba163
Compare
Choose a tag to compare

Release Date: 6/26/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites as part of 3D Internet that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Demo 3D Website: https://3d.walktheweb.com

Updated in this release:

The most notable upgrades include: Code Comments, Breakdown of major scripts, low poly avatars, and code cleanup.

Turning while Falling Gravity - When falling, if the avatar turns, it would stop the falling gravity. The gravity for onwait has now been applied to onturnleft, onturnright, onturnrunleft, and onturnrunright.

Restrict Movement before the Avatar Loads - Before the avatar loads the user is able to see the scene through a camera and can rotate to view before they enter. Forward and backward movement has been disabled (mouse scroll and keyboard movement) until the avatar loads.

Remove Admin Home link if logged out - The admin home link was staying on the bottom menu bar after logout. We removed the icon and onclick events from any other related icons and text. Also, checks to see if the user has admin access to the current site before showing. This is in addition to the security check required to load a site in admin.

Table Definition Changes - When a field is modified the check table function does not change the field. The work around is to add the script to check the data and field directly (new section added to the class_wtwtables.php). That way we can avoid data corruption.

Log out of admin Home Page Redirect - When logging out of admin if you have more than one domain names in use, the logout was redirecting to the default and not necessarily the current domain. That has been corrected to always be the same domain name used by admin mode.

Camera jumping when Enter Scene - The camera had strange jumping effects when entering scene. This has been corrected by using a PlaceHolder as the position before the Avatar Enters. In addition, the Restrict Movement by TheRealFakeAdmin locks the position of the PlaceHolder until the avatar is fully loaded.

Ability to disable Anonymous Avatars at the server level - Using the 3D Internet plugin, you can now turn off or on the various login options: WalkTheWeb (global) login, Local (server level) Login, and Anonymous (guest) avatars.

Loading time improved - The Scene can now keep loading while you select your avatar. This also gives the user a peek at the scene before they enter it with their avatar.

Improved Admin Mode Mold Selection - Some Molds especially 3D Objects, were difficult to right click in admin mode. We added additional code to help select and grab the parent of the 3D Object on admin right click.

Major Improvement for Camera when Avatar is against a Wall - When an avatar was near a wall and would rotate, the camera preserved the distance and would show you the back side of the wall, hiding your avatar from view. With this latest advancement, we used a pick-ray to determine if a wall obstructs the camera view and automatically shorten the distance of the camera so that it doesn't lose sight of your avatar.

Set Camera Distance in the Menu - You can now set the camera distance from the avatar in the menu using a slider.

Avatar Parts and materials were not Loading - On some of the Avatars, various parts (meshes) were not loading properly and the materials were also having some issues. First in the 3D Model, each part had to have its own material (copy) instead of sharing the material. This is because our designer sets the color separate for each part. Next, set the default color to black (instead of white). White causes certain materials to become polar black or white, while black absorbs the natural color of the avatar images. Finally, the meshes and materials issues were causing the system to not save your changes. This is all corrected in the designer and the main scene.

Added additional Color Options on Avatars - Previously we were only setting the emissive colors for the avatar parts. With the additions of node textures, there are many more options that effect colors. We now added diffuse color options to the avatar designer. In addition, diffuse also sets ambient color, while emissive also sets the specular color. You can select which color set you want using the Diffuse and Emissive buttons on the top of the color menu.

Updated all of the Default Avatars for Blender 2.8 - We updated the avatars to use node textures using Blender 2.8. In addition, the poly count was dramatically reduced by 40% to reduce file sizes and load times!

Released Blender 2.8 Files for Avatars! - In the near future, you will be able to upload your own avatars. To assist in helping you design, we are releasing the Blender 2.8 files for the Avatars in high and low poly count. If you use the same skeleton for your custom avatars, all of the current animations will still work!

Improved Avatar Jump Movement - Previously the avatar jump was only an animation effect. The avatar placeholder never actually left the ground. Because of this, the avatar could not jump onto higher platforms. Now, the avatar can jump and rise off the ground reasonably high levels. Like skipping a step on the stairs.

Fixed typo on WTW.mainParentMold - WTW.mainParentMold had a lower case 'p' and caused it not to be set. Corrected the issue and replaced code that uses that variable.

Renamed sunLight to backLight - The direct light in the scene is the sun, the back sides of objects have a light that was named WTW.sunLight, it is now renamed as WTW.backLight so that it is not confused with the primary sun light.

Cleanup moldname parts with Function - Before the function was written, each time the name had to be parsed to get the moldgroup, molds array, index, etc... as we work with the functions we replace the references to use the WTW.getMoldnameParts(zmoldname) function.

setShownMoldsByWeb replaces function setShownMoldsByGroup - setShownMoldsByGroup has been inactive for the past few updates. setShownMoldsByWeb was created to streamline the process with the create mold queue. This is not a change but removing the outdated process no longer in use.

Eliminated Obsolete Script Functions - Not all unused Scripts are obsolete, but some have been replaced by new methods. Once the new method is in place and well tested, the old Scripts can be removed. Examples include: getRotateMoldName

Rename Functions to Match Naming - Some functions such as clearSoundAndLights (now disposeSoundAndLights) have been renamed to match other similar functions. Use of 'dispose' for all similar functions that dispose of items. runFunction is now executeAnimationByName, createFunctionName is now setFunctionName, checkJSFunction is now checkMoldFunctionAndExecute, soundVolumeLinear is now getSoundVolumeLinear, processCSGAction is now getMoldCSG, setCSGAction is now processCSGAction (and moldgroup was removed as a parameter).

Transparent Material Update - Connecting grids, Action Zones, Place Holders, 3D Models, 3D Web Objects, and other complex molds use a cube to parent the parts. These cubes were using a hidden texture and have now been updated to a standard texture with alpha set to zero (0) for the transparency.

MoveAvatar Function moved - The Move Avatar function is now located in the newly created /core/scripts/avatars/wtw_avatarfunctions.js file. This was done to group category functions together. (FYI: it was in the /core/scripts/prime/wtw_core.js)

Division of wtw_common.js - In order to make the code more readable and divided by function categories, we broke down the wtw_core.js file into many smaller files and added a lot of comments. New files include: wtw_utilities.js, wtw_uploads.js, wtw_login.js, wtw_dynamicscripts.js, wtw_analytics.js, molds/wtw_3dblog.js, hud/wtw_hud.js, avatars/wtw_avatarfunctions.js, and actionzones/wtw_actionzonefunctions.js.

Moved Admin Menu functions to new JS File - First part of breaking down the wtw_admineditor.js file, the admin menu items are now in a new file wtw_adminmenus.js.

Started basic functions for Vehicles - Created the folder scripts/vehicles and started adding functions for vehicles control and movement.

Created new 3D Store Displays - Created new 3D Store Displays - Using Blender, created and implemented new low poly 3D Store Displays. This includes new product loading process.

Added Comments to Script Files! - All of the browsing Script files now have comments. The file is commented on top to show what to find, and each function has descriptive comments. Additional comments were added as needed to describe complex functions.

Transparency of water - Transparency of the main water was .98 and is now .90 to allow a clearer look into water.

Admin Dashboard Box Update - Updated By Eoghan Byrne (MrWaffles) The Admin Dashboard boxes have been styled and set to minimize and maximize using transition animations.

WalkTheWeb v3.3.1

31 May 21:28
a7783d4
Compare
Choose a tag to compare

Release Date: 5/31/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Updated in this release:

The most notable upgrades include: New Quick Start options to select an Avatar after login.

Added Quick Start Avatar Selection - Just like with selecting an anonymous avatar, you can now get started quickly after your login with a Quick Start avatar selection opposed to the create my avatar custom process which is still available.

Added chmod Command after mkdir - hen a new folder is created in the uploads folder, we ran into permissions issues on the new folder. Therefore, we added the recommended chmod to the folder after it was created in code.

Increased and Angled the Lighting Intensity - In order to effectively light the scenes, the default values and default sun direction have been changed. Max Intensity has been increased by .5 and medium and lower have been increased proportionally. The sun was coming down at a direction (1,-1,1) and has been changed to (-1, -200, -300) , while the sunlight for the opposite direction - backlight - (to light the shadowed areas) is now (1, -200, 300). The sun ambient and diffuse colors have been returned to Babylon default.

Avatar Designer not Changing Avatar - Under some conditions, the avatar designer was not updating the avatar when a new one was selected. It was due to a condition where the avatardef was not set yet, so we added a condition statement to check when trying to read a value.

Limited Shadows on Small Lights - You have the option to add Light in the web objects. When you do, it automatically added shadow tracking to every mesh on the screen causing lag. Now it only adds shadow tracking for the meshes that are in the same 3D Community, Building, or Thing limited to the parts within that 3d object. We also cranked up the light from .3 to .8 intensity.

Correction to Save Settings Function - The save settings function was only updating existing settings and not adding new settings to the database. Made a correction to the if statement in the function that can be found in the /core/functions/class_wtwdb.php

Moved Redirect for Session End - The session end was checked on the loading of the Admin Menu and was receiving an error for headers already written. This session check with redirect to home page has been moved to the preload Admin Menu function.

Registration Process Error Trapping - If the registration process failed for any reason, the error catch in the handler was not processing the error back to the user. We added additional conditions to check the error before returning a value. This should allow the registration process to always have a valid response even when it is an error.

Added Check Display Name - In the class_wtwdb.php input checkers, we added checkDisplayName to allow a-z, A-Z, 0-9, _(underscore), -(hyphen), .(period) and spaces. It also had a default value for when it does not pass the character match test.

Simplified Default Avatar Animations - Default animations found in the object definitions file were trying to support all of the variations of avatars including different idle (onwait) events. Now there is just one default set of animations and everything else can be done in the Avatar Customizer.

Eliminated Save Avatar Function - The Save Avatar Function was retired in the last release with the Avatar Designer with its own self contained save avatar features.

Eliminated the need for AvatarInd field - The Avatar Ind (Index) field was used to identify which of the Avatar Templates the avatar will use. With the latest enhancements in design and ability to customize, this is no longer needed. It is now tracked as an AvatarID in the database. (specifically table avatars). We will not script the removal of AvatarIND from the table but it can manually be removed. The only remaining reference to AvatarInd is in the 3D Internet Plugin and refers to the index of the Avatars array shown in your 3D Scene.

AvatarID added to UserAvatars in 3D Internet Plugin - The AvatarID was added in the 3D Internet plugin while removing the AvatarIND field.

Added a lot more comments to code - In our effort to further explain the code, we added a lot more comments to the code.

Code Cleaning - removed some unused items - While cleaning code, some unused items like global variables and unused or replaced functions have been deleted.

WalkTheWeb v3.3.0

29 Apr 21:47
a83ac21
Compare
Choose a tag to compare

Release Date: 4/29/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Updated in this release:

The most notable upgrades include: Linux and IIS ready (tested on both), the new Avatar Designer 3D Plugin, and the use of Global Logins and Avatars. If you choose Global Login and create Global Avatars, you will have the option to use them on any WalkTheWeb site with this feature enabled.

Added an Intermediate Menu before Chat - When you click on an Avatar, it was automatically creating an invite to chat. Now it opens an intermediate menu that can have other options like Chat, Block, Ban, and Profile

Back from Pause Error Corrected - When you leave your system inactive, the WebGL pauses after a certain amount of time. The issue is on-resume, the frame per second (FPS) starts at 0 and causes a division by zero in the wtw_core.js moveAvatar function. We added a safeguard to set the FPS to 30 if it is zero (which usually only happens on very few frames).

Mouse Up/Down Pan Camera View Improved - The mouse Up and Down movement with the camera view felt too rigid so we made it more dynamic taking into account the increment of mouse movement, Turn Speed settings, and Weight to the animation. This provides a much smoother and controllable camera movement.

Removed variable for moveOverride - Currently we are removing the variable for moveOverride. The original intent and functionality was replaced by the use of animationSet. We will enhance the animationSet feature as the need arises.

Set Tooltip Position only on Open - The Tool Tip position was moving with every mouse movement, even when it was not showing on the screen. We changed it to only track position if the tool tip is shown and added one call to the position right before it opens just to make sure it is in the right position.

Blocked User Select on Main Scene - Set the body of the html document to have User Select to none. This keeps the main menus from highlighting with mouse controls.

Added Full Screen F11 Function - (contribution by TheRealFakeAdmin) Not only did we add full screen function, but excluded everything except the Render Canvas to allow full emergence!

Block Right Click Context Menu - (contribution by TheRealFakeAdmin) - Added code to strategically block the right click menu from appearing. Plugins can override it by setting the class to include 'allow-contextmenu'. By default all input text boxes do not block the right click context menu. This also does not effect Admin view page and menus.

Avatars Scaling Increased Accuracy - Since many Avatars are Scaled down from large size, we needed improved accuracy for scaling by increasing the number of decimal points to 4 digits. This allows better control of Avatar Size.

Added Default Avatars in a Table - Default set of avatars were written into code. This has been converted into a table so that it is easier to add or remove default avatars from a given server.

Renamed AvatarAnimation Name to Event - The Avatar specific animation name (animationname) has been renamed to the more appropriate Animation Event (animationevent). This only affects the Avatar Animations tables, array objects, and object definitions. The mold animations were labeled accurately the first time.

Linux Rewrite Rule Improved - (contribution by MysticSeagull) - For use with plugins, the paths of the /connect and /core/handlers required an addition to the .htaccess rewriterule that supports the page not found for subfolders to redirect properly. It now preserves the URL while passing the path as the wtwpath querystring variable and preserving the original querystring. (RewriteRule ^.*$ /index.php?wtwpath=%{REQUEST_URI}&%{QUERY_STRING} [P]).

Added Validation Functions to Plugin Class - Added validation functions (like getNumber, getVal, checkNumber, etc...) to the plugin class class-wtwplugins that is available to all PHP plugin pages.

Snapshot of a Community, Building or Thing had a 500 Error - In the Admin Menu, under Options and Settings for either a 3D Community, 3D Building, or 3D Thing, the set Default Snapshot function had a server 500 error. Symptom was that the error log showed: PHP Fatal error: Uncaught Error: Call to undefined function imagecreatefrompng(). IIS PHP has it installed by default, so does many Linux PHP installs. This server is Amazon Linux 2 (from CENTOS 7). Resolution: yum install php-gd

Centered the Animations Button on the Browse Menu - (contribution by TheRealFakeAdmin) - The animations button on the bottom of the screen was moving based on the length of the string values for the community name and building name. This is a change in style that corrected the centering to be consistent regardless of string length.

Added hook for On Avatar Select - With the new process to select an avatar, we added a new hook (pluginsOnMyAvatarSelect) that happens right after the avatar is selected and is being downloaded and shown on the scene.

Avatar not Disappearing when Leaves - When someone left a web page, their avatar was lingering on the page indefinitely. We corrected the issue through the socket.io code. Disconnects are now reporting correctly.

Login and iFrame Window Settings and Resize - The Login and iFrame calls that show on the screen are now set to resize when the window is resized. This includes the addition of a minimum width of 450px. (Developers can override that if needed)

Redefined AvatarID, UserAvatarID, and MyAvatarID - With the addition of Avatars to a table to choose, it implements avatarid as the base avatar definition. The User selected avatar key is useravatarid. Numerous references for useravatarid were misleading as avatarid and myavatarid, which are now updated appropriately.

Eliminated Form Field wtw_tuseravataridanon - The new anonymous avatar selection process selects an avatarid without setting the user avatar id. Therefore, there was no need for the form field value wtw_tuseravataridanon.

Avatars are now in Avatar Groups - Avatars are now allowed to be assigned to a group with the additional field in the table 'avatargroup'. This allows us to easily add and remove avatars from a select group. By default, we will distribute the original 10 avatars in 2 different groups: Anonymous and Default. This allows us to add groups such as zombies, fantasy, and others. In the near future, you will be able to select the allowed groups for any 3D Community scene.

Add an Avatar Placeholder - Before an avatar is loaded to the scene, we added a placeholder that is basically all of the cubes of an avatar without the meshes, colors, and animations. When you first join a scene, the placeholder is added to the scene and the camera is set to the placeholder. It acts like an avatar without the avatar showing. This allows the cameras to assume the position of an existing avatar. Then when the user selects their avatar, it is loaded to replace the placeholder. Placeholders are only for the local user and are not inserted into the multiplayer environment.

Avatar Animation Table Changes - Requireslogin field was removed since all avatars other than anonymous avatars require login and the anonymous are no longer customizable. We added a field for avatarid that will allow us to map the various onwait animations to the specific avatar loading. This only applies to avatars that also include the initial onwait animation.

Check DB Version Data for Upgrades - We needed a function that runs on a WalkTheWeb core upgrade that can check and update specific data in the tables. We added checkDBVersionData function for that purpose. It executes only on the admin.php page and if the database version has been incremented. It runs after the databaseTableDefinitions function that updates any fields on the tables.

Avatar Smooth Transition from One to Another - When a user changes their avatar, each avatar takes a little time to download and prepare for view. Prior to this update, the avatar would disappear then reappear after it was fully loaded. This has been changed by adding a second scale box object as a parent of the old avatar meshes and renaming the avatar specific meshes, then load the new meshes, and finally remove the old meshes on completion.

New Anonymous Avatar Selection Process - We have refined and expanded the Anonymous Avatar selection process. It now selects possible avatars from the database, uses a 200x200 pixel image of the avatar for display, and will scroll if there are more than 2 available.

Avatar Idle Animations Prep Work - In order to allow avatar idle changes and custom uploaded avatars in the future, we added a field to the avataranimations table for avatarid. This is to be used if the idle animation is included with the initial load of the avatar. This will not apply if the idle is not in the avatar file or if you select a different idle. (idle is onwait animation).

Add Comments to the PHP Code - In order to assist developers for plugins, we added many comments to the PHP code. (Don't worry, the rest of the scripts folder is being worked on too).

Login Related Images Added - A few Login related images were added to the /content/system/images folder

Movement Animations Updated - The Limp Walk Backwards, and Left and Right Happy Turns were replaced. The Limp was previously not loading, and the Happy Turns were not 'in place' animations, which caused a strange back and forth effect when used.

WTW Avatars Plugin Released - The latest update will also include the wtw-avatars plugin, which is the new avatar designer!

WalkTheWeb tested on Linux and IIS - (contribution by MysticSeagull) - WalkTheWeb has now been fully tested on Linux (CentOS 7) and IIS. Adjustments to the code and recommended Linux .htaccess file settings have been included.

Missing Avatar after Update - If you are missing y...

Read more

WalkTheWeb v3.2.3

27 Mar 23:19
856c809
Compare
Choose a tag to compare

Release Date: 3/27/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Updated in this release:

Resized Avatars in Code - The Anonymous avatars were a little small out of scale to the other avatars, so we changed the scale to be a little larger. (was .07 and now .08). In addition, the scale in code for other avatars was 0.038 scale and in the database it was only set to a precision decimal point of 2 so it was automatically rounding up to .04 scale. Now the code is set to match the database at .04 scale.

Reformatted the Update WalkTheWeb message - The message to update WalkTheWeb was a little confusing with the date of the Latest available update and the current version date. We reformatted it to have the App Date as the latest under the App Info for update. Now there is a clear division between the current and update available.

Enhanced Check Hovers to include Avatars - The checkHovers function along with the pluginCheckHovers hook were only processing Community, Building, and Thing molds. We enhanced the process to also include Avatars (multiuser and MyAvatar)

Set Tooltip Background Transparency - Set the background of the ToolTip during hover overs on Molds to be 50% transparent to blend better with the scene.

Enhanced getMoldnameParts Function - Enhanced the function getMoldnameParts to include support for action zones, connecting grids, and avatars.

Set Community Mold Load Priority over Buildings and Things - In an effort to load the community molds first, added a condition to the setMoldsShown function in /core/scripts/prime/wtw_common.js to only move onto building and thing molds if all of the community molds that are needed have been processed to the queue.

Users Handler for Register had wrong Variable - The handler for users to register on the website had the wrong variable on the response (results instead of zresults). This has been Corrected and now will receive the proper response.

Plugin adding Menu Forms fix - When adding menu forms from a plugin only the last form was showing. It was resetting the variable to blank before loading each form in the loop. Corrected the issue by removing the variable reset.

Moved Chat Menu Form to Plugin - The Menu.php file in /core/menus had code for a chat form. It is being moved to a plugin so that other plugins can create different versions of chat forms as needed.

Check for object before setting receiveShadows - There were a number of places in code where receiveShadows was being set without verifying the Mesh or Mold Def was not null first. This would cause an occasional error if a mold was deleted before it was set. Corrected the issue.

Clear Sound and Lights before Deleting Mold - I fixed the sound duplication issue. Seems that it was only happening when the avatar walked outside the extreme load zone (when it deleted the mold definitions from the mold arrays). The sounds variable is part of the molds array (example: buildingmolds) I was putting the mold in queue to dispose, but then deleting the mold index from the array before it could process in the dispose queue. so now I created a separate function and dispose the sound (and lights) before the index is removed from the array. Works perfect now with the new function to clearSoundAndLights.

Close Menus function Updated - I Updated the closeMenus JavaScript function to close anything with the class for the left or right menu. Previously it only worked on the right. (this was prompted by the addition of the chat menu on the left)

Removed the FPS settings from the Check Action Zones Function - The Check Action Zones function has code to set the FPS counter, but was also setting the display, image, and style. We removed the extras to improve the FPS.

Added a Random Offset to Start Position - In Multiplayer, when user joins a scene, the avatars were colliding causing them to rise until moved. Added a random offset to the starting point to avoid this condition.

Limiting running Check Action Zones - Check Action Zones was being executed every frame. I changes it to only activate when your avatar or any other avatar in your scene moves position. It uses the global variable WTW.checkZones = true to force a check and resets it to false on completion.

pluginsSetCheckActionZones Plugin Hook replace by Global Variable - Replaced plugin hook for pluginsSetCheckActionZones with a global variable (WTW.checkZones = true) to trigger a check Action Zone Function.

Load Avatar file Cleanup - Cleaned up the Load Avatar JavaScript file (/core/script/avatars/loadavatar.js) by removing unnecessary variables and renaming local variables.

Updated BabylonJS to Stable Release 4.1 and implemented 3D Object Loaders - Updated BabylonJS to Stable Release 4.1 to include babylon.js, babylon.max.js (for reference only), babylon.loaders.min.js, and babylon.loaders.js (for reference only). Implemented the 3D Object Loaders for babylon, stl, gltf, glb, and obj.

Updated Procedural Materials for Release 4.1 - Updated Procedural Materials for Release 4.1 to inlude babylon.backgroundmaterial.min.js, babylon.cellmaterial.min.js, babylon.custommaterial.min.js, babylon.firematerial.min.js, babylon.furmaterial.min.js, babylon.gradientmaterial.min.js, babylon.gridmaterial.min.js, babylon.lavamaterial.min.js, babylon.mixmaterial.min.js, babylon.normalmaterial.min.js, babylon.shadowonlymaterial.min.js, babylon.simplematerial.min.js, babylon.skymaterial.min.js, babylon.terrainmaterial.min.js, babylon.triplanarmaterial.min.js, babylon.watermaterial.min.js, and babylon.materials.min.js

Updated GUI and Post Processes for Release 4.1 - Post Processes include: babylonjs.postProcess.min.js, babylon.oceanPostProcess.min.js, babylon.digitalRainPostProcess.min.js, babylon.asciiArtPostProcess.min.js and the GUI Update: babylon.gui.min.js

Updated Procedural Textures for Release 4.1 - Updated Procedural Textures include: babylonjs.proceduralTextures.min.js, babylon.woodProceduralTexture.min.js, babylon.waterProceduralTexture.min.js, babylon.starfieldProceduralTexture.min.js, babylon.roadProceduralTexture.min.js, babylon.perlinNoiseProceduralTexture.min.js, babylon.normalMapProceduralTexture.min.js, babylon.marbleProceduralTexture.min.js, babylon.grassProceduralTexture.min.js, babylon.fireProceduralTexture.min.js, babylon.cloudProceduralTexture.min.js, and babylon.brickProceduralTexture.min.js

Added Babylon Serializers for 3D Objects - 3D Object Serializers are used to export a 3D Scene into various 3D Object formats (which can then be loaded into other 3D Scenes). 3D Object serializers have been added and include: babylonjs.serializers.min.js, babylon.objSerializer.min.js, and babylon.glTF2Serializer.min.js

Global Materials, Post Process, and Procedural Textures Implemented - There is a global materials JavaScript File instead of loading numerous material files. This, Post Process, and Procedural Textures have all been implemented on the core scripts init.

Throttled the Socket.io Pings to Increase Performance - Set the socket.io ping interval and ping timeout for the movement (34 milliseconds, or about 30 frames per second and a 3 second timeout) and the Chat (1 second ping and a 4 second timeout).

Changed the Load Sequence to to Prioritize My Avatar - Changed the load sequence to 3D Community (scene), My Avatar, then buildings and other avatars. The Other Buildings begins after the My Avatar Enter Animation Completes.

Unload when other Avatars are in a Load Zone - In multiplayer, if you walked into a Load Zone and it loads, then if another avatar from multiplayer is in that Load Zone, it was not triggering to unload the zone when you leave unless the other avatar also leaves. Added a condition to check and unload the zone to the check Action Zones function in wtw_core.js

Moved Chat Related Styles to 3D Internet Plugin - There were CSS styles only related to chat features remaining in the main code even though the chat had been moved to the 3D Internet Plugin. These css styles have now been moved. Any remaining dependency on a style was copied and renamed appropriately.

Increased Inactivity Timer - Increased the inactivity timer to 3 hours for desktop and 5 minutes for mobile. It is mainly implemented so that mobile devices have a safeguard against running continuously when not active. In the early days of WebGL it may have caused the CPU to heat up, which has been safeguarded at the OS level and Game engine level now. We keep this timer as a precaution. It is highly recommended not to disable this feature.

Added Plugin Hook for Close Browse Menu - Added a plugin hook called pluginsCloseMenus that executes when you click the close menu x for the popup menus used when browsing.

Added Plugin Hook for Window OnUnload - Added a plugin hook that executes when the user closes the window or refreshes the page.

Changed Start Order of Session Variables - In the file class_wtw-initsession.php, function checkHost, the order of setting session variables has been updated to support php 7.4 on Linux by initializing session parameters before starting the session. The session_start() has also been moved into this function at the appropriate order.

Correct wtw_rootpath Defined Variable - The wtw_rootpath variable was using a windows notation and now uses the forward slash in its definition. This corrects the issue of running the code from Linux.

Images Missing on 3D Objects (Linux specific) - I figured out the problem loading some images (shows as red/black checkers instead of images). When I recently moved from a Windows IIS server to a Linux server, it is now case sensitive. Turns out that some of the image files uploaded had been renamed on upload to all lowercase. For general use this would not have been an issue since it calls the image form the database which...

Read more

WalkTheWeb v3.2.2

27 Feb 23:08
e5a0b1a
Compare
Choose a tag to compare

Release Date: 2/27/2020
By Aaron Dishno Ed.D.

This software is a hosting software for 3D Websites that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.

Updated in this release:
Coverings in the 3D Plugin Template - Added support for Coverings to be added through the 3D Plugins (template)

Fixed loading Textures - When the plugin hook was added to coverings (materials), there was an error in the variables passed and we replaced the default. We added coveringname as a variable and also needed to add texture as a separate case (was the default). Now it works as planned.

500 Error on Things.php Handler - Missing a closing parenthesis on line 50 causing a 500 error. Corrected the issue.

Saving 3D Object Animations - When saving 3D Object Animations, the return process was not supplying the Object Animation ID properly. The Item was saving, but you would need to refresh the browser to get the new animation listed. It is now corrected and the process reports the save properly.

Multiplayer Animation Movement Update - Added global variable WTW.activeAnimations to assist in tracking the current user animations for movement used to report for multiplayer. In addition the moveAvatar and setAvatarMovement functions included a couple references to camera and repeated the process to report movement to multiplayer that have been updated to check for current user first so that the same functions can be used for positioning and setting animations for multiplayer avatars.

Adding Complex Parts To ActionZones - Adding Complex Parts To ActionZones - When Adding Molds (Meshes) to Action Zones like the Sliding Door and Swinging Door, if the mold is a child mold of the assembly item (common with Babylon 3D Objects), the item was not being properly added and parented to the Action Zone. After the Mold to add is picked, we now have a function called getMoldBase that you can pass the mold and get the true base of the mold before it is parented to the Action Zone. In addition, the update action zone process in the handler (and functions) is now set to just update the actionzoneid on the mold instead of re-saving the entire mold. It also corrected an issue with the mold form closing when you add a part.

Added Hook for Plugin Stylesheets - You can now add stylesheets to the instance through plugins. Stylesheets can be set for All (Admin and Browse) or Admin only. This also adds the PHP variable for the array of stylesheets found in the wtw class and addStylesheet and getPluginStylesheets functions in the wtw-plugin class.

Fixed getSettings function in wtw_common.js - The getSettings function in wtw_common.js was returning the wrong variable for the settings; was settingvalues is now settings. In addition, when writing a setting, was checking for !empty which was blocking a setting of zero (0) or blank (''). We changed it to allow any 'isset' value.

Corrected pluginsSetAvatarMovement to Return Value - The incorrect script function was in place and did not allow the plugin to return a value. Corrected the issue by using the returnScriptFunction function instead of getScriptFunction.

Fixed cookie for WalkAnimationSpeed - The walk animation speed was not saving when the slider was set. This also effected the reloading of movement settings. This has been corrected.

Dispose of Babylon File 3D Objects - Babylon File 3D Objects are loaded asynchronously. If the Avatar walks into and our of the load zone before the loading process completes, some meshes for the object can be orphaned and placed into the scene relative to the origin coordinates. We added code to properly check for the parent and dispose of any orphaned meshes.

Allowed Admin to edit Main Load Zones - Each 3D Community, 3D Building, and 3D Thing has 3 Load zones by default; extreme, high, and normal (near) distance. Up until now, you did not have access to adjust the size, rotation, or position of these zones. They are now included in the drop-down list of editable action zones. When editing, you can not change the name and they cannot be deleted. Remember that if the Extreme zone is not loaded, the 3D Object will not load; it is the over-all trigger for the 3D Object.

Refined Avatar Movement Steps and Resources - Removed unnecessary arrays, steps, and resources from the moveAvatar function. Also eliminated the need and removed setAvatarMovement and syncAvatars functions.

Added Plugin Hooks for Check Action Zones - Added hooks to trigger when the check Action Zone process should run; if your avatar moves or if another avatar moves in your screen.

Get My Distance error Fixed - Distance checking from My Avatar to various objects int he scene was throwing errors before My Avatar was loaded. The function was enhanced to check that WTW.myAvatar is not null before calculating distance.

Load Avatar Start Animations Start Weight - Added a check to validate Start Weight for running a Weighted Animation. It was showing as undefined for some instances. Now the default is zero.

Increased Avatar Collision Ellipsoid - Increased the Avatar's ellipsoid in order to prevent shoulders and arms passing through nearby walls when you walk close.

Removed Dependency of Instance from User Based Avatar - When a user is not logged in, the avatar is identified by an instance ID. This can be different from each browser or computer you use. When the user is logged in, the instance ID is also recorded to the avatar based on user ID. The old code used both. Now with this update, if the user ID is provided, the instance ID is ignored. All computers and browsers will find the same user avatar.

Fixed Full Screen Video Option on 3D Video Player - The button to go to full screen on the video player was not functioning.We corrected the code and now it opens the video in a new tab for full screen.

Added Water Fountain to 3D Web Objects - Using a Particle Stream, added a Water Fountain effect with flair particles and gravity. Note that it does not show in front of the sky. Best if used with surrounding background.

Turned on Ambient Lighting - In order to help light the default scenes and items imported from Blender (Babylon files), we set scene and Babylon imported meshes ambient lighting to (.3,.3,.3). This gives them a subtle lighting avoiding full black textures on random textures.

Enabled Socket.io for use in WalkTheWeb - Enabled and included socket.io in application to be used in multiplayer, chat and other like functions.

Changed default Gravity Settings - In order to help the avatar movement, we decreased the default scene gravity from 9.8 to 3.5. This still applies gravity, but helps with walking up hill and over curbs.

Renamed Action Zone Handler Function Names - To avoid confusion between saveavataranimation and deleteavataranimation in avatar and action zones handlers, we renamed the Action Zoned based functions to saveazavataranimation and deleteazavataranimation respectively. This update is in the handler and class files.

Release file did not have the Version Updated:
/core/functions/wtw-initsession.php - starting on line 21:

public $version = "3.2.2";
public $dbversion = "1.0.5";
public $versiondate = "2020-2-27";

WalkTheWeb-3.2.2.zip file has version updated.