University of Southern CaliforniaUSC
USC ICT TwitterUSC ICT FacebookUSC ICT YouTube

Support of Visual Studio 2012? | General SmartBody Discussion | Forum

Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Support of Visual Studio 2012?
March 23, 2015
4:50 pm
Avatar
Paris, France
Member
Members
Forum Posts: 23
Member Since:
August 5, 2014
sp_UserOfflineSmall Offline

I downloaded the latest Windows SDK (r-5919) and found that it is compiled for Visual 2010 32-bit.

I would like to use Visual 2012 (and even 2013 but that's a dream...) in both 32 and 64-bit.

So what's the status of supporting VC2012?

 

I tried to build SB with VC2012 but I have to tell that it's pretty hard:

+ First, I opened the "vs2010.sln" file in VC2012 to upgrade it. I ran a compilation... that failed.

 

+ In "core\smartbody\sbgui\external\Pinocchio\hashutils.h", I had to wrap the following lines:

using namespace _HASH_NAMESPACE;

namespace _HASH_NAMESPACE {

  ...

}

with "#if _MSC_VER < 1700 ...  #endif".

Then I found that the file "behavior_scheduler_fixed.hpp" includes almost no files. So I added inclusions for files:

- map

- utility (used for std::pair)

- string (for std::wstring)

- vector

And, really, SB developers should not be lazy about including headers in files that use symbols declared in those headers...

 

+ I fixed several "make_pair" misuses: it has to be called "make_pair(e0, e1)" instead of "make_pair<TypeE0, TypeE1>(e0, e1)".

+ Several compilations failed because "SmartBody_d.lib" wasn't found. So I changed output of the SmartBody project in order to produce a static library.

 

Now, linking fails with so many errors that I wonder how you build a SB SDK... Do you have a procedure?

March 24, 2015
1:07 am
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

"And, really, SB developers should not be lazy..."

You're getting a cutting-edge animation system for free with all the source code. Try not to 'look a gift horse in the mouth'... :)
Any suggestions for improvement are appreciated, just keep in mind that this is not commercially supported. It's a research system used for a number of internal projects at ICT, and for my animation research. I'd love to be able to hire a programmer to smooth out these and other 'rough spots', but there is no revenue generated from this project, so you are mostly witnessing a labor of love...

The link errors are likely related to all the dependent libraries that need to be rebuilt for VS2012. The following libs need to be rebuilt for VS2012:

blas.lib           (blas)

libf2c.lib            (f2c)

lapack.lib            (lapack)

activemq-cpp.lib   (ActiveMQ-cpp)

xerces-c_3.lib   (Xerces)

boost_filesystem-vc100-mt-1_51.lib   (BOOST)

boost_system-vc100-mt-1_51.lib

boost_regex-vc100-mt-1_51.lib

boost_python-vc100-mt-1_51.lib

OpenAL32.lib   (OpenAL)

alut.lib             (alut)

libsndfile1.lib    (libsndfile)

pthreadVSE2.lib  (pthreads)

ode_double.lib  (Open Dynamics Engine)

python27.lib    (Python)

libprotobuf.lib  (Google Protocol Buffers)

A number of those libraries have source code under the lib/ directory from the SmartBody SVN (not the SDK distribution, which contains the minimum needed to build SmartBody and sbgui). It likely wouldn't take much to build those files, then change the library directories to point to those new libs. I think that others have done this already and gotten it working. 

Ari

March 24, 2015
10:37 am
Avatar
Paris, France
Member
Members
Forum Posts: 23
Member Since:
August 5, 2014
sp_UserOfflineSmall Offline

About adding headers, I just wanted to say that it's something important because it makes code easier to compile on different systems. I propose it as a coding guideline :-)   And, in my experience, I remember code that was "compiling" (with warnings of course) but crashing at runtime because some missing function symbols were replaced with default signatures.

About contributions, I can do some but I have to say that I would appreciate to work with Git: nice to make several commits locally and finally propose a branch for review (or even just a diff with the development branch). So do you plan to use Git for example?

For external libs, I'll have a look at the "lib" directory.

 

Thx for your reply.

March 25, 2015
10:21 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

I'm not sure I'm quite ready to switch source code repositories, since I have a large investment in SVN to date.

Yes, I agree with you about adding proper headers.

 

Ari

April 19, 2015
3:43 pm
Avatar
New Member
Members
Forum Posts: 1
Member Since:
April 19, 2015
sp_UserOfflineSmall Offline

Hey there,

SB is a great project, but IMHO the version control at SF really is lacking and SF has made some bad news lately for distributing malware and being blocked by major browsers.

I would greatly appeciate a switch to github. Github is kinda mainstream atm and supports both git and SVN. Also the homepage has a very clean look to it which I pefer. :)

I mean, even Google switched to github...

April 24, 2015
10:32 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Noted. SourceForge isn't cool anymore. 🙂

Ari

May 26, 2015
11:05 am
Avatar
Member
Members
Forum Posts: 3
Member Since:
May 26, 2015
sp_UserOfflineSmall Offline

Hello,

First things first, thank you Ari and the rest of the team for this amazing SDK. Like the others here I`ve been trying to get the project updated (to vs2012 vc110). So far with moderate success. Starting with the SB dependencies I`ve compiled most libs/dlls in w32/vc110 (2012) and marked them "DONE"

blas.lib http://icl.cs.utk.edu/lapack-f.....ack/#build (blas)
libf2c.lib (f2c)
lapack.lib (lapack)
activemq-cpp.lib (ActiveMQ-cpp)
xerces-c_3.lib (Xerces) DONE

OpenAL32.lib (OpenAL) DONE
alut.lib (alut) DONE
libsndfile1.lib (libsndfile) libsndfile-1.dll (https://github.com/lordmulder/libsndfile-MSVC)
pthreadVSE2.lib (pthreads) DONE
ode_double.lib (Open Dynamics Engine) (0.11?) DONE
python27.lib (Python) DONE
libprotobuf.lib (Google Protocol Buffers) DONE

boost_python-vc110-mt-1_51.lib DONE

libboost_filesystem-vc110-mt-1_51.lib DONE
libboost_regex-vc110-mt-1_51.lib DONE
libboost_system-vc110-mt-1_51.lib DONE

I`m having some problems with "libsndfile". It seems like an outdated project when it comes to windows, Unix not so much:

http://www.mega-nerd.com/libsndfile/

But I`ve found an alternative:

https://github.com/lordmulder/libsndfile-MSVC

Which is also giving me troubles (lib compiles dll does not). Has anyone else gotten beyond this yet?

I can specify more details when interested, also it might be an idea to find webspace so we can all contribute to make this work.

I`m also willing to share what Ive got so far, just send me a message and I`ll send a 7MB rarfile of my semi-progress. 

May 27, 2015
5:16 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

If the sndfile .lib compiles, then that should be sufficient. It gets statically linked into the smartbody.dll, yes?

Ari

May 28, 2015
11:54 am
Avatar
Member
Members
Forum Posts: 3
Member Since:
May 26, 2015
sp_UserOfflineSmall Offline

I don`t believe so, but it could be something I`m not aware of.

I get the following error when starting my (Irrlicht) executable (with the SB DLL present). System error:

The program can`t start because libsndfile-1.dll is missing from your computer. Try reinstalling the program to fix this problem.

May 28, 2015
5:04 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Did you replace the libsndfile-1.lib with the one that you built? It was originally in lib/vhcl/libsndfile/lib or lib/vhcl/libsndfile/lib64

 

Ari

May 29, 2015
10:21 am
Avatar
Paris, France
Member
Members
Forum Posts: 23
Member Since:
August 5, 2014
sp_UserOfflineSmall Offline

Hi,

 

Two problems I had with VC 2012:

 

When compiling without Python support, the line "initPython(pythonLibPath);" in "smartbody-c-dll.cpp" should be wrapped with "#ifndef SB_NO_PYTHON / #endif".

 

In "sbm_speech_audiofile.cpp", I experience a crash in the destructor on "delete m_xmlParser" because "XMLPlatformUtils::Initialize()" should be called before the line "m_xmlParser = new XercesDOMParser();".

And to avoid memory leaks, "XMLPlatformUtils::Terminate()" should be called for each "XMLPlatformUtils::Initialize()" in SmartBody. Here, I added one after the line "xmlCache.clear();" in the destructor.

May 29, 2015
4:46 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Ok, so you now have it running from a vs2012 build?

 

Ari

June 3, 2015
7:12 pm
Avatar
Member
Members
Forum Posts: 3
Member Since:
May 26, 2015
sp_UserOfflineSmall Offline

Ari Shapiro said
Did you replace the libsndfile-1.lib with the one that you built? It was originally in lib/vhcl/libsndfile/lib or lib/vhcl/libsndfile/lib64

 

Ari

I`m not sure, but I`ve abandoned the thought of migrating to vs2012 myself. I`ve figured it was not worth the time it took for me personally (haven`t worked on too many c++ projects). To make it work I migrated my other libraries mainly Bullet and Irrlicht to vs2010, which went a little more smoothly.

Thanks again for the sbSDK it`s truely awesome.

February 3, 2016
6:10 am
Avatar
New Member
Members
Forum Posts: 1
Member Since:
February 3, 2016
sp_UserOfflineSmall Offline

Compiling SmartBody with MS Visual Studio (2013, 2015) is a real pain!

My first try was to get all dependencies and rebuild them with VS2013. Also, I get rid of blast by using Eigen because boost numeric bindings are very old not working with current boost version. Eigen is a good replacement and a header-only-library. Rebuilding the huge list of dependencies was possible, but I forgot to look out for your modifications.

My second version was to use CMake which also failed first. After dropping bonebus, activemq, libsnd, etc. I finally got a project to compile which was working. But I can't use it in any application - error 0xc000007b on start.

My last try was collecting all code files from SmartBody and its dependencies into one project. This failed, too!

 

It would be nice to have a working cmake project or an updated SDK for VS2013/VS2015. If it's nessecary to publish dependencies, a CMake sub project is very helpful instead of providing old *.lib files.

February 3, 2016
9:58 am
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

There is a functioning build for vs2015 in the following branch in the source repository:

 branches / fast / smartbody-toolkit-5542 /

 

That's the version that is used in the Virtual Human Toolkit. It is a number of revisions behind the trunk, but it should work with VS2015. When I have some time I'll integrate those changes back into the trunk.

 

Ari

May 31, 2016
8:19 am
Avatar
Aachen, North Rhine-Westphalia, Germany
Member
Members
Forum Posts: 5
Member Since:
May 31, 2016
sp_UserOfflineSmall Offline

Dear Ari,

I would like to reopen this topic.
I'm already trying for some month to get a working SmartBody version for Visual Studio 2012 for 64 Bit. I managed to get two versions (build successful), one based on your VS2015 branch, one

based on the VS2010 r6206. However, when I include those versions into my ViSTA application (I'm a member of RWTH Aachen University and plan to use SmartBody partially for my dissertation) not all stuff works. Aspects like the idle state, the viewing options (view direction with movement of exes, head, torso etc.) look as expected and already experienced with the VS2010 r6206 with 32bit. However, e.g., locomotion and steering fails as the legs are not animated any longer and path following does not work anymore.
A made a short video showing a small example: In VS2010 r6206 with 32bit Rachel follows a sphere with normal walking (not included in the video). The same code with one of my SmartBody versions for VS2012 with 64bit results in a sliding movement and a missing following mode. The video can be downloaded from gigamove till 14.06.2014 with this link: https://gigamove.rz.rwth-aachen.de/d/id/MNpf33A2M6sbC5

Did you experience something like this before or do you have an idea what might went wrong during my own build of SmartBody?

Best
Andi

 

PS: Thank you for providing such a good virtual human tool! Will you give more insight into it during IVA2016, as I plan to attend this conference?

June 8, 2016
12:24 pm
Avatar
Admin
Forum Posts: 967
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Something is definitely wrong there. Unfortunately, I haven't had the time to look at the upgrade issues, although it is on my agenda. 

The root is moving properly, but the animation cycle of the joints are not. Perhaps the animations aren't being joint-mapped properly? I'm not sure what that is; I'll have to address it when I do the 'official' SmartBody upgrade to a newer code base.

 

Ari

May 9, 2017
5:18 am
Avatar
Aachen, North Rhine-Westphalia, Germany
Member
Members
Forum Posts: 5
Member Since:
May 31, 2016
sp_UserOfflineSmall Offline

Hi everyone,

just to close this thread for documentation purposes.

 

There is a working VS2013 branch available at source forge:
https://sourceforge.net/p/smartbody/code/HEAD/tree/branches/vs2013/

Best,
Andrea

July 6, 2017
12:31 am
Avatar
New Member
Members
Forum Posts: 1
Member Since:
July 6, 2017
sp_UserOfflineSmall Offline

The same happened to me for one of our project. Migrating from VS 2008 to VS 2015 failed at some parts with error logs showing some references to dll's are missing. So I added the dll's and it worked.

Forum Timezone: America/Los_Angeles

Most Users Ever Online: 733

Currently Online:
31 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

jwwalker: 80

jyambao: 48

rbaral: 47

adiaz: 30

WargnierP: 29

mbarros: 28

lucky7456969: 28

avida.matt: 26

JonathanW: 24

laguerre: 23

Member Stats:

Guest Posters: 63

Members: 32684

Moderators: 3

Admins: 4

Forum Stats:

Groups: 1

Forums: 5

Topics: 417

Posts: 2300