Example code 1 (fbx rendering using timeline).
import os,sys,pdb,math
from libcalab_ogre3d import *
import numpy as np
def onFrameChanged(iframe):
global skin1, skin2
print(iframe)
skin1.setPose(fbx.loader.mMotion.pose(iframe))
skin2.setPose(fbx.loader.mMotion.pose(iframe))
this=RE.createMainWin(sys.argv)
skelFile='../../Mixamo/fbx_withSkin/bigvegas_Walking.fbx'
skinScale=1
fbx=RE.FBXloader(skelFile, skinScale=skinScale, useTexture=True, simplifyMesh=False)
# draw skeleton
skin1=RE.createSkin(fbx.loader)
skin1.setScale(skinScale, skinScale, skinScale)
# draw mesh
skin2=RE.createFBXskin(fbx)
skin2.setScale(skinScale, skinScale, skinScale)
g_motion2=fbx.loader.mMotion
mTimeline=RE.Timeline("Timeline", g_motion2.numFrames(), 1/g_motion2.frameRate())
m.startMainLoop() # this finishes when program finishes
example code 2 (bvh loading without using timeline).
import os, sys, pdb, math, random
from libcalab_ogre3d import *
import numpy as np
elapsedTime=0
def frameMove(fElapsedTime):
global elapsedTime, mLoader, mMotion,mSkin
elapsedTime=elapsedTime+fElapsedTime
currFrame=round(elapsedTime*30) # assuming 120hz
if currFrame>=mMotion.numFrames():
return
mLoader.setPose(mMotion.pose(currFrame))
leftwristpos=mLoader.getBoneByName('LeftHand').getFrame().translation
RE.draw("Sphere", leftwristpos*100, "wrist1", "red", 6)
mSkin.setPose(mMotion.pose(currFrame))
def onCallback(w, uid):
print(w.id())
this=RE.createMainWin(sys.argv)
this.addButton('hihi')
this.updateLayout()
mLoader=RE.createMotionLoaderExt('../Resource/motion/woody/wd2_2foot_walk_turn2.bvh')
mMotion=mLoader.mMotion
mSkin= RE.createSkin(mLoader); # to create character
mSkin.scale(1,1,1); # this motion data is in cm unit
mSkin.setPose(mMotion.pose(0));
RE.viewpoint().vpos.set(0, 50, 300)
RE.viewpoint().vat.set(0,40,0)
RE.viewpoint().update()
while True:
if not RE.renderOneFrame(True):
break
Other examples
https://github.com/taesoobear/IPCDNNwalk
Changelog
version 0.2.8
- Gaussian splatting
version 0.2.7
- Pack and unpack floatTensor
version 0.2.6
- Fixed memory issues (regarding .array)
- Fixed memory leaks (regarding Voxels and SDF)
Version 0.1.5
- Automatically creates the
workresource folder.
Version 0.1.4
- Improved the SceneGraph UI.
Version 0.1.3
- Fixed null pointer errors related to
Ogre::SceneNode.
Release files for libcalab-ogre3d 0.3.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| libcalab_ogre3d-0.3.4-cp312-cp312-manylinux_2_39_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.39+ x86-64 | Details |
| libcalab_ogre3d-0.3.4-cp312-cp312-macosx_13_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 13.0+ ARM64 | Details |
Total release size: 40.9 MB
Release files / libcalab_ogre3d-0.3.4-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | libcalab_ogre3d-0.3.4-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 24.9 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
36724e965a3fda2b4f72b8aef6e77852ee2d75bac25696c62ddc7356a7f3b390
|
|
BLAKE2b-256 checksum How to use checksums |
ef734de60d0c32c29f151a09200aec5c21ff62b688284ecaddc322e5f50ddf43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / libcalab_ogre3d-0.3.4-cp312-cp312-macosx_13_0_arm64.whl
| Download URL | libcalab_ogre3d-0.3.4-cp312-cp312-macosx_13_0_arm64.whl |
|---|---|
| Size | 15.9 MB |
| Tags | CPython 3.12 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1e88b239ad2ea0d29de59ea10d86ac304f58a29251efc6aa65dd2a40df3831e5
|
|
BLAKE2b-256 checksum How to use checksums |
e3f0d7f9352588b0443f63f148c469638da36b425a10fe2a370e239942255356
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.8
|