Skip to content

Instantly share code, notes, and snippets.

View prideout's full-sized avatar
🎯
Focusing

Philip Rideout prideout

🎯
Focusing
View GitHub Profile
@prideout
prideout / MainActivity.kt
Created April 3, 2020 02:40
getting-started-entities
// Reset the root transform, then rotate it around the Z axis.
modelViewer.asset?.apply {
modelViewer.transformToUnitCube()
val rootTransform = this.root.getTransform()
val degrees = 20f * seconds.toFloat()
val zAxis = Float3(0f, 0f, 1f)
this.root.setTransform(rootTransform * rotation(zAxis, degrees))
}
@prideout
prideout / MainActivity.kt
Last active May 4, 2020 20:27
getting-started-animation
private val frameCallback = object : Choreographer.FrameCallback {
private val startTime = System.nanoTime()
override fun doFrame(currentTime: Long) {
val seconds = (currentTime - startTime).toDouble() / 1_000_000_000
choreographer.postFrameCallback(this)
modelViewer.animator?.apply {
if (animationCount > 0) {
applyAnimation(0, seconds.toFloat())
}
updateBoneMatrices()
@prideout
prideout / MainActivity.kt
Created April 3, 2020 02:11
getting-started-json
override fun onCreate(savedInstanceState: Bundle?) {
// ...
//loadGlb("DamagedHelmet")
loadGltf("BusterDrone")
loadEnvironment("venetian_crossroads_2k")
}
private fun loadGltf(name: String) {
val buffer = readAsset("models/${name}.gltf")
@prideout
prideout / MainActivity.kt
Created April 3, 2020 01:08
getting-started-ibl
override fun onCreate(savedInstanceState: Bundle?) {
// ...
loadGlb("DamagedHelmet")
loadEnvironment("venetian_crossroads_2k")
}
private fun loadEnvironment(ibl: String) {
// Create the indirect light source and add it to the scene.
var buffer = readAsset("envs/$ibl/${ibl}_ibl.ktx")
KtxLoader.createIndirectLight(modelViewer.engine, buffer).apply {
@prideout
prideout / MainActivity.kt
Last active May 4, 2020 20:17
getting-started-assets
override fun onCreate(savedInstanceState: Bundle?) {
// ...
loadGlb("DamagedHelmet")
modelViewer.scene.skybox = Skybox.Builder().build(modelViewer.engine)
}
private fun loadGlb(name: String) {
val buffer = readAsset("models/${name}.glb")
modelViewer.loadModelGlb(buffer)
modelViewer.transformToUnitCube()
@prideout
prideout / MainActivity.kt
Last active May 4, 2020 20:15
getting-started-framevents
private val frameCallback = object : Choreographer.FrameCallback {
override fun doFrame(currentTime: Long) {
choreographer.postFrameCallback(this)
modelViewer.render(currentTime)
}
}
override fun onResume() {
super.onResume()
choreographer.postFrameCallback(frameCallback)
@prideout
prideout / MainActivity.kt
Created April 2, 2020 23:45
getting-started-oncreate
private lateinit var surfaceView: SurfaceView
private lateinit var choreographer: Choreographer
private lateinit var modelViewer: ModelViewer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
surfaceView = SurfaceView(this).apply { setContentView(this) }
choreographer = Choreographer.getInstance()
modelViewer = ModelViewer(surfaceView)
surfaceView.setOnTouchListener(modelViewer)
@prideout
prideout / build.gradle
Last active May 4, 2020 20:16
getting-started-gradle
dependencies {
implementation 'com.google.android.filament:filament-android:1.6.0'
implementation 'com.google.android.filament:filament-utils-android:1.6.0'
implementation 'com.google.android.filament:gltfio-android:1.6.0'
// ...
}
@prideout
prideout / MainActivity.kt
Created April 2, 2020 23:40
getting-started-init
import com.google.android.filament.utils.*
class MainActivity : Activity() {
companion object {
init { Utils.init() }
}
// ...
@prideout
prideout / monograph.py
Created March 25, 2020 20:38
pandoc + puppeteer
from pypandoc import *
import json
import os
print('generating HTML...')
outfolder = '../docs/graceful'
content = open('monograph.md', 'r').read()
HTML_ARGS = ['--filter=html_filter.py']
body = convert_text(content, "html", "md", extra_args=HTML_ARGS)